LB算法
2018-08-13 本文已影响0人
DjangoW
-
轮询调度算法(Round Robin Scheduling)
通过循环迭代(i++)%n
来选出某台服务器来处理接收到的用户请求
是无状态调度,不会记录当前所有链接的状态。 -
加权轮询调度(Weighted Round-Robin Scheduling)
在轮询调度的基础上加上一个条件,当weight
为0时表示该server不可用而不被调度。
可以用来屏蔽故障服务器,或者服务器升级维护 -
随机调度(Random Scheduling)
通过i = random(int) % n
来选出第i台服务器来处理用户请求
加权随机调度和2类似 -
最少链接调度(Least Connection Scheduling)
LB记录当前服务器接收到的连接个数,每次接收新链接,count
加一
最少链接调度就是选取记录的count
最小的server来处理用户请求
加权最少链接调度和2类似 -
哈希调度算法(Hash Scheduling)
对发出请求的client的ip做i=hash(ip)%n
取到第i台服务器来处理用户请求
加权哈希调度和2的描述类似 -
基于地址的最小连接数调度(Locality-Based Least Connections Scheduling)
将来自同一个ip地址的请求分配给同一台server,此时这台服务器是尚未满负荷的。
否则就将这个请求分配给连接数最小的server,并以它作为下一次分配的首先考虑。