最佳负载平衡算法,用于在一组服务器之间分配请求?

问题描述 投票:1回答:2

哪种更好的负载平衡算法可以在一组服务器上分配传入请求?我已经读过他们是像Round Robin这样的算法..但是我想知道你对哪个是更好或至少最常用的算法的看法。

希望你们能帮助我。

algorithm load-balancing
2个回答
1
投票

答案是:这取决于。在考虑特定于服务的多个因素时,实现了最佳负载平衡。例如,假设您有一个提供API来编码字符串的服务,其中编码完全取决于字符串的内容。您有N个服务正在运行的副本。

一种简单的方法是简单地使用客户端选择服务索引i = hash(string)/ N.假设输入字符串在散列空间上均匀分布,这将很好地工作并且非常容易实现。

现在说出于某种原因,由于某种原因,字符串在散列空间上分布不均匀(例如,可能会重复很多字符串)。在这种情况下,您可以使用简单的循环方法,或随机选择索引。您还可以从服务器获得一定的背压:例如,如果RPC调用是同步的,您可以在客户端测量需要多长时间,并且在字符串编码的情况下,可以将其除以串;如果客户端注意到这个数字上升,则可能意味着该服务无法跟上,客户端可能会减少它发送给此类客户端的流量。这显然有点复杂。

TLDR:负载平衡有很多选项,其中一个是“最好的”取决于被缩放问题的具体性质。


0
投票

1-轮罗宾

2-加权循环法

3-最少连接

4-加权最小连接

5-随机

请看这个网址:

https://www.jscape.com/blog/load-balancing-algorithms

© www.soinside.com 2019 - 2024. All rights reserved.