Concurrency 为什么Azure不在我的两个实例之一上发送HTTP请求?

Concurrency 为什么Azure不在我的两个实例之一上发送HTTP请求?,concurrency,azure,load-balancing,azure-web-roles,Concurrency,Azure,Load Balancing,Azure Web Roles,我有一个Azure web角色,有两个实例。两个实例都“准备就绪”-运行正常 在我的桌面上,有四个相同程序的实例同时运行,并通过HTTP请求点击web角色URL。然而,根据日志,所有请求仅被调度到实例0。我需要将请求发送到两个实例以测试并发操作 为什么不将请求发送到第二个实例,以及如何将它们发送到第二个实例?这可能是由于负载平衡器优化了请求路由,因为所有请求都来自同一IP。虽然看起来很像,但Azure中的LB并不是真正的愚蠢循环 如果您没有预料到这一点,但是服务器正在处理负载,那么您就没事了。您

我有一个Azure web角色,有两个实例。两个实例都“准备就绪”-运行正常

在我的桌面上,有四个相同程序的实例同时运行,并通过HTTP请求点击web角色URL。然而,根据日志,所有请求仅被调度到实例0。我需要将请求发送到两个实例以测试并发操作


为什么不将请求发送到第二个实例,以及如何将它们发送到第二个实例?

这可能是由于负载平衡器优化了请求路由,因为所有请求都来自同一IP。虽然看起来很像,但Azure中的LB并不是真正的愚蠢循环

如果您没有预料到这一点,但是服务器正在处理负载,那么您就没事了。您甚至可以关闭第二个实例,直到您的指标显示服务器正忙(为您省钱)


如果您需要能够从同一IP实现负载平衡,那么我可能会考虑使用队列。虽然这对于web请求(与某些后端处理相比)来说是不寻常的。

看起来这种行为是由于IIS“保持活动”(
)造成的。因为“保持活动”,一旦客户端由实例提供服务,它就会被该实例卡住


禁用“保持活动”会删除该选项,请求现在或多或少会随机到达所有实例。MSDN表示禁用“保持活动”可能会降低性能,但为了测试并发操作,这是可以的。

这个答案很有用,但我找到了实际的解决方案-请参阅我的答案。