0

我在 NLB 集群上有 3 台服务器,并部署了一个无状态的重运行 WCF 服务来给集群施加压力。

配置为:端口 80,组播,关联:无

然后我从我的工作站向集群发出 32 个并行请求,完成 32 个请求的总时间约为 35 秒。

我试图关闭 2 台服务器,再次运行服务,最终结果也大约是...... 35 秒 !!!?!?!?

当同时查看这 3 台服务器上的任务管理器时,我发现请求是按顺序处理的,如果 1 台服务器正在处理请求,则另外 2 台服务器将空闲。我认为请求应该在所有 3 台服务器上并行处理。

我无法弄清楚发生了什么。我配置错了吗?有人对此有解释吗?

4

2 回答 2

1

根据 NLB 文档:

如果您的 Affinity 设置为 Single 或 Class C,则来自单个 IP 的请求应路由到集群中的单个主机。但是,如果您将 Affinity 设置为 None,它应该将请求路由到所有主机。

实际上,我看到了与您相同的问题。我们在一个集群中有多个服务器,关联性设置为无,来自单个 IP 的所有请求仍然被路由以保存主机。我仍在寻找答案。

于 2014-07-10T18:35:27.330 回答
0

最后,我自己找到了答案。

NLB 集群根据客户端的 IP 决定服务请求的主机,一次只分配 1 台服务器来服务来自 1 个客户端 IP 的所有请求。

我所有的请求都是并行发送的,但只有 1 个 IP;因此,只分配了一台服务器来处理所有这些请求。

当尝试从 2 或 3 个客户端发送请求时,我看到其他服务器开始并行工作。

这就是 NLB 的工作方式。

于 2013-10-04T02:13:39.370 回答