从不健康的(503ing)实例路由请求?

Routing requests away from an unhealthy (503ing) instance?

我们使用 Azure App Service 在多个(横向扩展)Premium Dv2 实例上托管了一个 Web 应用程序。

有时我们的应用程序在重启后无法启动。这将导致对该实例的请求做出 503 Service Unavailable 响应。但是当这种情况发生时,请求仍然会在这个实例和健康实例之间平均路由。

负载均衡器不应该将请求路由到远离此实例的地方吗?这能实现吗?

注意:我们没有使用 API 管理或应用服务环境。

Shouldn't the load-balancer rather route requests away from this instance?

Azure 负载均衡器可以探测各种服务器实例的运行状况。当探测未能响应时,负载均衡器会停止向不健康的实例发送新连接。

据我所知,在出现 503 错误之前,它仍会路由到该实例。

But when this happens, requests still get routed evenly between this instance and the healthy instances.

我发现以下可能的场景,当实例不健康时,您仍然会被路由。

1.The 在 SuccessFailCount 中设置的超时和频率值决定实例是否被确认为 运行 或不 运行。在 Azure 门户中,超时设置为频率值的两倍。

2.The HTTP 服务器在超时期限后根本没有响应。根据设置的超时值,多个探测请求可能在探测被标记为未被标记之前未得到答复 运行。

3.If 您有使用 w3wp.exe 的网络角色,您还可以自动监控您的网站。您的网站代码失败 return 负载均衡器的非 200 状态 probe.Consequently,负载均衡器不会停止轮换该实例。

4.The TCP 服务器在超时期限后根本没有响应。何时将探测标记为非 运行 取决于在将探测标记为非 运行 之前配置为未得到答复的失败探测请求的数量。

更多细节,你可以参考这个article