仁科百华资料 负载平衡最全详解(万字图文回来)
图片仁科百华资料
巨匠好,我是mikechen。
负载平衡是大型网站的必经之路,亦然架构师的必备手段,不管是漫衍式、中间件、已经微干事..等等齐需要波及负载平衡,本篇就全面来详解负载平衡@mikechen
最新mikechen原创超30万字《阿里架构师进阶专题书册》和《最全大厂Java口试题谜底书册》,请存眷本公众号【mikechen的架构条记】,后台修起:尊府,即可领取。
什么是负载平衡负载平衡(Load Balancing)是一种通过将责任负载分派到多个缱绻资源或系统组件上,以已毕更好的性能、可靠性和可膨胀性的本事。
负载平衡是为了应酬系统中出现的高负载、高并发和大流量等情况,确保系统约略提供高性能、高可用性和可伸缩性。
如下图所示:
图片
在靠近大批用户申请同期造访系统的情况下,单一干事器可能无法灵验处理统共申请,负载平衡不错将申请分袂到多个干事器上,以确保每台干事器的负载相对较轻,普及并发处明智商。
负载平衡算法负载平衡算法,主要分为如下5类:
1.轮循
轮询算法(Round Robin)这是最肤浅的负载平衡算法之一,将每个新的申请按序分派给干事器列表中的下一个干事器。
如下图所示:
图片
适用于干事器性能临近的场景,确保申请相对均匀地漫衍在统共干事器上。
2.加权轮循
加权轮询算法(Weighted Round Robin)访佛于轮询算法,但为每个干事器分派一个权重值,权重越高的干事器取得处理申请的概率越大。
如下图所示:
图片
在轮询的基础上字据硬件成立不同,按权重分发到不同的干事器,这么不错更好地妥贴不同干事器性能的场景。3.赶紧
赶紧算法,该算法的基本想想是赶紧选拔一个干事器来处理每个新的申请,以达到负载平衡的看法。
如下图所示:
图片
赶紧算法的优点在于已毕肤浅,有关词由于其赶紧性,弗成确保每个干事器取得交流数目的申请,因此在骨子欺骗中可能导致某些干事器的负载较重,而其他干事器较轻。4.最少流通
最少流通算法是一种常用的负载平衡算法,其基本想想是将新的申请分派给现时流通数最少的干事器,以达到负载平衡的看法。
如下图所示:
图片
记载每个干事器正在处理的申请数,把新的申请分发到最少流通的干事器上,因为要厚爱里面景色不推选。5.哈希
哈希算法(Hash-based Load Balancing)字据申请的某些特征,比如:IP地址、URL等缱绻哈希值,然后将申请分派到对应哈希值的干事器上。
如下图所示:
图片
这种算法确保交流的申请经久被分派到交流的干事器,有助于处理特定的会话保抓等需求。负载平衡的分类图片
负载平衡主要分为二层 三层 四层 七层负载平衡。
1.二层负载平衡
二层负载平衡,是在OSI模子的数据链路层(第二层)进行负载平衡的一种面孔。
在这个头绪上,主要波及到MAC地址的操作,这种负载平衡经常被称为二层交换机(Layer 2 Switching),或二层负载平衡器。
在二层负载平衡中,负载平衡器通过查验数据帧的看法MAC地址来决定将数据帧转发到哪个干事器。
二层负载平衡经常用于处理出奇大批、短会话的负载平衡需求,比如在局域网内进行干事器之间的负载平衡。
2.三层负载平衡
三层负载平衡,是在OSI模子的收罗层(第三层)进行负载平衡的一种面孔。
在这个头绪上主要波及到IP地址的操作,这种负载平衡经常被称为三层交换机(Layer 3 Switching),或三层负载平衡器。
3.四层负载平衡
四层负载平衡是在OSI模子的传输层(第四层)进行负载平衡的一种面孔,在这个头绪上,主要波及到IP地址和端标语的操作。
已毕四层负载平衡的软件有:
F5:F5是一款交易硬件负载平衡,复古四层和七层的负载平衡,功能很好,关联词资本很高;
lvs:LVS是一个在Linux上已毕的四层负载平衡器,复古多种负载平衡算法,如轮询、最小流通数等;
nginx:Nginx是一款世俗使用的开源Web干事器,同期也复古四层负载平衡;
haproxy:HAProxy是一款开源的、高性能的负载平衡软件,复古TCP和HTTP欺骗层负载平衡。
4.七层负载平衡
七层负载平衡是在OSI模子的欺骗层(第七层)进行负载平衡的一种面孔。七层负载平衡,经常用于HTTP和HTTPS流量的负载平衡。
七层负载平衡器约略深远到欺骗层的左券信息,举例:HTTP头部、URL等,这使得它不错字据更丰富的信息进行负载平衡
已毕七层负载平衡的软件有:
Nginx: 除了复古四层负载平衡外,NGINX亦然一种纷乱的七层负载平衡器,出奇适用于处理HTTP和HTTPS流量。
F5:F5是一款交易七层负载平衡和欺骗托福截至器,提供丰富的负载平衡、安全性和性能优化功能。
总的来说,一般是lvs作念4层负载,nginx作念7层负载。
负载平衡的旨趣跟着欺骗的用户数目和流量的增多,单一负载平衡实例可能会成为瓶颈,无法灵验地处理统共的申请。
通过横向膨胀,不错将流量分袂到多个负载平衡器实例上,普及统共这个词系统的处明智商。
如下图所示:
图片
淌若系统中只须一个负载平衡器实例,其故障可能导致统共这个词系统的不可用。
通过横向膨胀,多个负载平衡器实例不错共同责任,即使其中一个实例发生故障,其他实例仍然不错不竭分发流量,普及系统的可用性。
除此以外,通过横向膨胀负载平衡,还不错增多系统的全体性能,摊派单一负载平衡实例的压力,从而普及系统的反应速率和处明智商。
负载平衡欺骗场景图片
负载平衡本事不错欺骗于多种场景:
1.Web欺骗负载平衡
场景形容:高流量的Web欺骗中,大批用户造访Web干事器,申请包括网页、图片、CSS、JavaScript等资源。
管制决策:负载平衡器将用户申请分发到多个Web干事器,确保每个干事器取得相对均匀的负载,普及全体性能和反应速率。
2.数据库负载平衡
场景形容:数据库干事器是欺骗要道组件,需要处理大批数据库查询和事务。
管制决策:负载平衡器确保数据库负载均匀漫衍,看管某个数据库成为性能瓶颈,普及数据库性能和可靠性。
3.欺骗干事负载平衡
场景形容:复杂的欺骗架构中,多个欺骗干事器共同处理用户申请,每个干事器负责不同的业务逻辑。
管制决策:负载平衡器确保申请分派到可用的欺骗干事器,看管某个干事器过载,普及全体欺骗性能和可用性。
4.云缱绻负载平衡
场景形容:在云缱绻环境中,干事需要在云中多个实例之间分发流量。
管制决策:云干事提供商提供的负载平衡干事可用于分发云干事的流量,确保用户约略造访到可用的云资源。
以上
车震视频临了送巨匠一个福利:
送巨匠一份我原创超30万字的阿里架构师进阶专题书册,出奇的全面。
图片
以及给巨匠整理了一份出奇全面的Java口试题及谜底书册,包含:Java、多线程、JVM、Spring、MySQL、Redis、Dubbo、中间件…等最全大厂必考题及谜底详解。
图片
本站仅提供存储干事,统共内容均由用户发布,如发现存害或侵权内容,请点击举报。