发布日期:2025-06-28 15:08 点击次数:75
图片色老大导航
大家好,我是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层负载。
负载平衡的旨趣跟着愚弄的用户数目和流量的增多,单一负载平衡实例可能会成为瓶颈,无法灵验地处理悉数的恳求。
通过横向彭胀,不错将流量离别到多个负载平衡器实例上,普及悉数这个词系统的处理才智。
如下图所示:
图片
如若系统中唯有一个负载平衡器实例,其故障可能导致悉数这个词系统的不可用。
通过横向彭胀,多个负载平衡器实例不错共同职责,即使其中一个实例发生故障,其他实例仍然不错无间分发流量,普及系统的可用性。
除此除外,通过横向彭胀负载平衡,还不错增多系统的举座性能,摊派单一负载平衡实例的压力,从而普及系统的反应速率和处理才智。
文爱xxx负载平衡愚弄场景图片
负载平衡本事不错愚弄于多种场景:
1.Web愚弄负载平衡
场景描写:高流量的Web愚弄中,大齐用户拜访Web就业器,恳求包括网页、图片、CSS、JavaScript等资源。
惩办有经营:负载平衡器将用户恳求分发到多个Web就业器,确保每个就业器取得相对均匀的负载,普及举座性能和反应速率。
2.数据库负载平衡
场景描写:数据库就业器是愚弄要津组件,需要处理大齐数据库查询和事务。
惩办有经营:负载平衡器确保数据库负载均匀散播,堤防某个数据库成为性能瓶颈,普及数据库性能和可靠性。
3.愚弄就业负载平衡
场景描写:复杂的愚弄架构中,多个愚弄就业器共同处理用户恳求,每个就业器持重不同的业务逻辑。
惩办有经营:负载平衡器确保恳求分拨到可用的愚弄就业器,堤防某个就业器过载,普及举座愚弄性能和可用性。
4.云狡计负载平衡
场景描写:在云狡计环境中,就业需要在云中多个实例之间分发流量。
惩办有经营:云就业提供商提供的负载平衡就业可用于分发云就业的流量,确保用户不详拜访到可用的云资源。
以上
终末送大家一个福利:
送大家一份我原创超30万字的阿里架构师进阶专题书籍,畸形的全面。
图片
以及给大家整理了一份畸形全面的Java口试题及谜底书籍,包含:Java、多线程、JVM、Spring、MySQL、Redis、Dubbo、中间件…等最全大厂必考题及谜底详解。
图片
本站仅提供存储就业,悉数内容均由用户发布,如发现存害或侵权内容,请点击举报。