`

集群、分布式、负载均衡 关系

阅读更多
在“高并发,海量数据,分布式,NoSql,云计算......”概念满天飞的年代,相信不少朋友都听说过甚至常与人提起“集群,负载均衡”等,但不是所有人都有机会真正接触到这些技术,也不是所有人都真正理解了这些“听起来很牛的”技术名词。下面简单解释一下吧。(从一个网站上面看到的,例子很有趣,分享给大家)

   集群(Cluster)

   所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。通俗一点来说,就是让若干台计算机联合起来工作(服务),可以是并行的,也可以是做备份。

   负载均衡(Load Balance)

   网络的负载均衡是一种动态均衡技术,常见的实现方式是通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。日常生活中到处都能看到“负载均衡”,一个超市的收营员高峰期只能服务10位顾客,当做活动时有20位顾客需要服务的话可能就会排长队,这样购物体验将会很差(就像客户抱怨系统/网站访问太慢)。最简单的办法就是再招个营业员,重新开通一个出口。负载均衡的核心就是“分摊压力”。

   大规模集群,通常具备以下一些特点:

   (1)高可靠性(HA)

   利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。

   (2)高性能计算(HP)

   即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。

   (3)负载平衡(LB)

   即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

   当然,以上的这些特点,在某些适应场合下是需要同时具备的。常用的集群又分以下几种:

   load balance cluster(负载均衡集群)

   一共有四兄弟开裁缝铺,生意特别多,一个人做不下来,老是延误工期,于是四个兄弟商量:老大接订单, 三个兄弟来干活。 客户多起来之后,老大根据一定的原则(policy) 根据三兄弟手上的工作量来分派新任务。

   High availability cluster(高可用集群)

   两兄弟开早餐铺,生意不大,但是每天早上7点到9点之间客户很多并且不能中断。为了保证2个小时内这个早餐铺能够保证持续提供服务,两兄弟商量几个方法:

   方法一:平时老大做生意,老二这个时间段在家等候,一旦老大无法做生意了,老二就出来顶上,这个叫做 Active/Standby.(双机热备)

   方法二:平时老大做生意,老二这个时候就在旁边帮工,一旦老大无法做生意,老二就马上顶上,这个叫做Active/Passive.(双机双工)

   方法三:平时老大卖包子,老二也在旁边卖豆浆,老大有问题,老二就又卖包子,又卖豆浆,老二不行了,老大就又卖包子,又卖豆浆.这个叫做Active/Active (dual Active)(双机互备)

   (包子= application package, 互相照应叫做heartbeat, 顶替对方工作叫做 failover/takeover. 如果两个兄弟突然都瞎了聋了,不知道现在对方到底是否正在干活,都认为自己要顶对方的工作,这个叫做brain-split, 然后需要第三者,比如他们的老爹来解决问题,这个叫做tier-breaker, 或者让他们两个的媳妇过来拉走其中一个,这个叫做fency。)

   high computing clustering(高性能计算集群)

   10个兄弟一起做手工家具生意,一个客户来找他们的老爹要求做一套非常复杂的仿古家具,一个人做也可以做,不过要做很久很久,为了1个星期就交出这一套家具,10个兄弟决定一起做。

   老爹把这套家具的不同部分分开交给儿子们作,然后每个儿子都在做木制家具的加工,最后拼在一起叫货。

   老爹是scheduler任务调度器,儿子们是compute node. 他们做的工作叫做作业。

   (其实,还有一种,分布式存储相关的集群,应用于超大规模网站,云计算平台等等。涉及点存储方面的,这里就不介绍了)

   严格来讲,这些已经超过了一般开发人员的知识范畴了,想真正理解和掌握这些并不太容易,有时候需要真正的实践而不是闭门造车。从运维人员和系统架构师的角度来看,不仅需要具备丰富的操作系统配置和管理的经验,更要具备网络协议、存储等相关的知识(懂算法和底层的就更完美了)。从开发人员和软件架构师的角度来看,需要考虑的重点又不同了。当然,远远不止我所提到的这些。现在的Web应用一般都比较依赖于基础架构,而越来越脱离了”纯软件架构“的本质。集群不是万能的,但有时候确实相当有用。由于项目和工作关系,我本人目前主要使用的是微软的技术体系(当然,目前大都是基于windows平台的)。有机会的话,我可以将自己在这方面的研究和实践分享出来,更希望有兴趣的朋友在一块分享和交流。


   总结:


   分布式是指将不同的业务分布在不同的地方,集群指的是将几台服务器集中在一起,实现同一业务。在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。你对三者了解了么?
分享到:
评论

相关推荐

    linux nginx+redis+tomcat分布式负载均衡生产环境部署完成

    linux nginx+redis+tomcat分布式负载均衡生产环境部署完成 技术:reids集群 nginx部署 tomcat负载均衡 说明包含: nginx+redis+tomcat分布式负载均衡文档 session共享资料 安装程序 nginx+redis+tomcat分布式...

    分布式负载均衡集群架构设计

    1.双主负载均衡服务器: nginx+keepalived实现nginx双主高可用的负载均衡 两太负载均衡互为主从,由keepalived配置的具体调度算法调度负载均衡服务器 2.DNS轮询: DNS轮询请求负载均衡服务器,负载均衡服务器通过...

    Java集群与负载均衡

    Java集群与负载均衡是构建大型、高可用性Web应用程序的关键技术。它们确保系统能够处理大量并发请求,并在硬件故障或高负载情况下保持服务的稳定性和响应速度。下面将详细探讨这两个概念及其在Java开发中的应用。 ...

    基于非关系数据库的分布式负载均衡技术.pdf

    总之,基于非关系数据库的分布式负载均衡技术是一个多维度、多层次的优化技术,它结合了非关系数据库的特性、动态负载均衡策略和异步计算的优势,旨在为分布式系统提供更加高效、可靠和灵活的性能保证。通过这种方式...

    linux rabbitmq+haproxy分布式负载均衡生产环境部署完成

    linux rabbitmq+haproxy分布式负载均衡生产环境部署完成 技术:rabbitmq集群 linux haproxy负载均衡 说明包含: rabbitmq安装程序 MQ集群负载均衡部署帮助文档 MQ集群负载均衡使用帮助文档 MQ集群负载均衡遇到...

    流媒体服务器集群的负载均衡

    流媒体服务器集群的负载均衡是构建大规模视频点播系统中至关重要的技术,它关系到系统的资源利用率和服务质量。流媒体服务器(MS)集群系统通过相对低成本的方式提供了强大的可扩展性和高吞吐量,但要充分利用这些...

    Tomcat集群与负载均衡

    总结来说,Tomcat集群和负载均衡通过分布式架构和智能的请求分发策略,提升了Web应用的处理能力和容错能力,有效解决了单一服务器的性能瓶颈和单点故障问题,保证了大规模网站的稳定运行。同时,不同的负载均衡技术...

    R-gossip:分布式负载均衡效率优化算法.pdf

    在分布式系统中,用户请求需要被有效地分发到集群中的不同服务器上,这就是负载均衡的关键任务。 分布式系统的核心问题之一是保持分布式一致性。在单节点服务中,锁是实现服务一致性的常用手段。然而,在集群中,...

    分布式Web服务器中负载均衡的实现.pdf

    分布式负载均衡技术摒弃了中心节点的概念,而是让每个服务器都能独立地接收和处理请求,或者将其重定向至其他服务器。这种方式通过定期组播系统负载信息,使各服务器能够实时了解集群内的负载状态,进而做出更合理的...

    构建分布式负载均衡集群的企业邮件网络平台.pdf

    总结而言,构建分布式负载均衡集群的企业邮件网络平台涉及的关键知识点包括分布式系统理论、负载均衡技术、高性能服务器的配置、数据存储与服务部署策略、以及跨网关认证机制。这些知识点是企业邮件系统平台构建过程...

    Elasticsearch的分布式架构、负载均衡、高可用以及容错性看这一篇就够了

    开箱即用,简单粗暴Elasticsearch天然支持分布式和集群,开箱即用,零配置,零改动。自动分片一个index默认5个primaryshard,那么我们创建一个document,他给我们分配到哪个shard...shard负载均衡假设我们有1个index,

    海量文件的分布式存储及负载均衡研究(浅析)

    本文主要探讨了如何针对中等规模商务网站实现海量图片的分布式存储和负载均衡,以提升网站的访问速度和整体性能。 首先,面对图片资源的急剧增长,传统的单一服务器存储方式会导致I/O操作成为系统瓶颈,影响用户...

    weblogic8.1集群负载均衡

    WebLogic Server 8.1 集群负载均衡是一个关键的IT概念,它涉及在分布式环境中管理和优化应用程序的性能和可用性。WebLogic是Oracle公司的一款企业级Java应用服务器,而集群功能允许多个WebLogic服务器实例协同工作,...

    基于集群的负载均衡方案

    在构建高性能的分布式系统时,负载均衡是一个至关重要的概念,其目标是确保系统资源的高效利用,提升服务...通过以上步骤,我们可以有效地实现基于集群的负载均衡,从而提升平台的性能和稳定性,满足高并发场景的需求。

    一种分布式动态负载均衡调度算法.pdf

    在分布式系统中,集群负载均衡调度是集群系统能否高效运行的关键。集群负载均衡调度的目的是使得集群中的真实服务器能够分担多个客户的请求,从而提高系统的可用性和性能。一个成功的负载均衡算法能够在不同性能...

    基于中间件的分布式服务器负载均衡方法.pdf

    分布式服务器负载均衡是指在多台服务器之间合理地分配工作负载,以提高系统的整体处理能力,确保用户请求能够快速且高效地得到处理。它在信息时代服务器集群面临的访问请求剧增的情景中尤为重要,是提升服务质量的...

Global site tag (gtag.js) - Google Analytics