编写加权负载平衡算法

jav*_*ill 4 algorithm load load-balancing

我要写一个加权负载平衡算法,我正在寻找一些参考.有书吗?你可以建议理解这样的算法.

谢谢!

Not*_*tMe 10

这里的简单算法并不复杂.

假设您有一个具有以下权重的服务器列表:

A 10
B 20
C 30
Run Code Online (Sandbox Code Playgroud)

较高的重量代表它可以处理更多的流量.

只需按重量划分发送到每个服务器的流量,并将最小值排序为最大值.最顶层的服务器获得用户.

例如,假设每个服务器从10个用户开始,那么订单将是:

C - 10 / 30 = 0.33
B - 10 / 20 = 0.50
A - 10 / 10 = 1.00
Run Code Online (Sandbox Code Playgroud)

这意味着接下来的5个请求将转到服务器C.第6个请求将转到C或B.第7个请求将转到没有处理第6个的任何一个.


更复杂的是,您可能希望平衡器更加智能化.在这种情况下,它需要跟踪每个服务器当前正在服务的请求数量,并在完全满足请求时减少它们.

进一步的复杂性包括增加会话的粘性.这意味着平衡器必须检查会话ID的每个请求并跟踪它们上次去的位置.


总的来说,如果你能从已经做到这一点的公司购买产品.