负载均衡器背后的算法?

时间:2010-04-01 15:48:40

标签: windows linux algorithm

我需要研究负载平衡器,例如网络负载平衡,Linux虚拟服务器,HAProxy,......我需要知道一些不足之处:

  • 这些负载均衡器使用了哪些算法/技术?哪个最受欢迎?最有效率?

我希望这些算法/技术不会太复杂。是否有一些关于它们的资源?

非常感谢你的帮助。

4 个答案:

答案 0 :(得分:3)

例如,Apache中的负载平衡由名为mod_proxy_balancer的模块负责。该模块支持3种负载均衡算法:

  • 请求计数
  • 加权流量统计
  • 等待请求计数

有关详细信息,请查看此处:mod_proxy_balancer

答案 1 :(得分:2)

不确定这是否属于serverfault,但有些负载均衡技术是:

  • 循环赛
  • 最少连接

我使用最少的连接。将人员送到负载最小的机器上是最有意义的。

答案 2 :(得分:2)

通常,负载平衡就是将新客户端请求发送到最不忙的服务器。根据应用程序运行情况,为每个服务器分配一个“忙碌因素”:基本上是一个数字,反映您的负载平衡算法(连接客户端,cpu / mem使用等)的一个/多个兴趣点,然后在运行时选择这样得分最低的服务器。基本上任何负载平衡技术都基于以下内容:

  1. 循环法本身并没有实现“忙分数”,而是将每个连续的请求分配给循环队列中的下一个服务器。
  2. 最少连接的得分= number_of_open_connections到服务器。显然,连接较少的服务器是更好的选择。
  3. 随机分配是一种特殊情况 - 您对服务器的负载做出了不明智的决定,但假设该功能具有统计上均匀的分布。

答案 3 :(得分:1)

除了已经提到的那些,一个简单的随机分配可以是足够好的算法,用于负载平衡,尤其是对于大量服务器。

以下是Oracle的一个链接:http://download-llnw.oracle.com/docs/cd/E11035_01/wls100/cluster/load_balancing.html