负载平衡 ,是 分布式架构 的必备技术,也是 进阶的 必学技术,须要重点把握。
本文我会重点详解负载平衡的 5 大外围算法 @mikechen
咱们先来看一张典型的 集群和负载平衡架构图:
当一台机器不能接受拜访压力时,咱们大多会通过横向减少两台、或者多台服务器,来独特承当拜访压力,来极大的升高后端的拜访压力,晋升用户的拜访性能。
然而,从一台扩大到多台服务器后,如何将客户端的流量、散发到具体的服务器呢?是通过服务器 1、还是服务器 3?
这就波及到了具体的 负载平衡算法。
目录
- 1. 轮循
- 2. 加权轮循
- 3. 随机
- 4. 起码连贯
- 5. 源地址散列
1. 轮循
轮询很容易实现,将申请按程序轮流调配到后盾服务器上,平衡的看待每一台服务器,而不关怀服务器理论的连接数和以后的零碎负载。
适宜场景:适宜于应用服务器硬件都雷同的状况。
2. 加权轮循
在轮询的根底上依据硬件配置不同,按权重散发到不同的服务器。
适宜场景:跟配置高、负载低的机器调配更高的权重,使其能解决更多的申请,而性能低、负载高的机器,配置较低的权重,让其解决较少的申请。
3. 随机
通过零碎随机函数,依据后盾服务器列表的大小值来随机选取其中一台进行拜访。
随着调用量的增大,客户端的申请能够被平均地分派到所有的后端服务器上,其实际效果越来越靠近于平均分配流量到后盾的每一台服务器,也就是轮询法的成果。
4. 起码连贯
记录每个服务器正在解决的申请数,把新的申请散发到起码连贯的服务器上,因为要保护外部状态不举荐。
5. 源地址散列
依据服务消费者申请客户端的 IP 地址,通过哈希函数计算失去一个哈希值,将此哈希值和服务器列表的大小进行取模运算,失去的后果便是要拜访的服务器地址的序号。
适宜场景:依据申请的起源 IP 进行 hash 计算,同一 IP 地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行拜访。
以上,是 5 大负载平衡算法及其原理的 解析,对把握及应用负载平衡,具备肯定的参考价值,倡议珍藏、常常温顾。
如果感觉有用,请 点赞 + 转发 反对下,谢谢。
作者简介
陈睿 | mikechen , 10 年 + 大厂架构教训,「mikechen 的互联网架构」系列文章作者,专一互联网架构技术。
「mikechen 的互联网架构」的 40W 字技术文章合集:
Java 并发 | JVM | MySQL | Spring | Redis | 分布式 | 高并发
👇 关注「mikechen 的互联网架构」公众号 👇,回复【架构】,即可取得。