0

我有一个带有两个实例的 Azure Web 角色。两个实例都“准备就绪”——运行正常。

在我的桌面上,我有四个相同程序的实例同时运行并使用 HTTP 请求访问 Web 角色 URL。然而,根据日志,所有请求都仅分派到实例 0。我需要将请求分派到两个实例以测试并发操作。

为什么请求没有分派到第二个实例,我如何让它们在那里分派?

4

2 回答 2

1

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

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

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

于 2012-09-13T20:08:29.697 回答
0

看起来这种行为是由于 IIS“保持活动状态”(<system.webServer><httpProtocol allowKeepAlive="true">。因为“保持活动状态”一旦客户端由实例提供服务,它就会被该实例卡住。

禁用“保持活动”会删除它,并且请求现在或多或少随机地到达所有实例。MSDN 表示禁用“保持活动”可能会降低性能,但为了测试并发操作,它会没问题。

于 2012-09-27T12:35:29.083 回答