0

Apache有3种负载均衡算法:

  1. 请求计数算法
  2. 加权流量算法
  3. 待处理请求计数算法

从理论上讲,挂起请求计数算法比其他两个更好,因为它总是会尝试选择具有最少活动连接的 Web 服务器。

我有 3 个 Web 服务器和 1 个负载均衡器。我的问题是,当我尝试挂起请求计数算法时,它没有按预期工作。它总是以循环方式选择 Web 服务器(Web 服务器 1 -> Web 服务器 2 -> Web 服务器 3 -> Web 服务器 1,依此类推)基于理论,我预计结果将是(Web 服务器 1 - > Web 服务器 1 -> Web 服务器 1,依此类推)

那么,为什么挂起的请求计数算法没有按预期工作?

笔记:

  1. 没有保持连接。
  2. 为了测试负载均衡器,我打开一个简单的页面(小于 0.1 秒的加载时间)并每 5 秒手动刷新一次以了解它选择了哪个集群。
  3. 未对挂起请求计数算法的配置进行任何更改。
4

2 回答 2

0

仅仅因为单个服务器可以处理所有请求并不意味着它应该。如果一台服务器将处理大部分请求,它会比其他服务器更快地失效,这通常不是理想的情况。这种策略也带来了可靠性风险:即,您可能会在不经意间错误地配置“服务器 3”,直到系统负载升高到足以将其放入游戏中——它会在关键时刻失败。

于 2013-08-27T23:27:32.100 回答
0

我不明白你为什么期望不同的行为?从文档中:

新请求会自动分配给活动请求数量最少的工作人员。

在多个最不忙的工作人员的情况下,请求计数方法使用的统计数据(和权重)用于打破平局。随着时间的推移,工作的分配将变得类似于请求的特征。

只要您的服务器有类似的工作要做,行为就应该与 byrequests 相同。只是当一些服务器开始收到大量需要时间的请求时,它们开始被跳过,以便其他服务器获得该流量。

这就是我对它的理解。

于 2014-11-06T21:53:18.077 回答