路由请求远离不健康(503ing)实例?

时间:2018-03-07 07:09:28

标签: azure azure-web-sites azure-web-app-service azure-app-service-plans

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

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

负载均衡器是否应该远离此实例路由请求?这可以实现吗?

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

1 个答案:

答案 0 :(得分:1)

  

负载均衡器是否应该将请求远离此实例?

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

AFAIK,在您收到503错误之前,它仍会被路由到该实例。

  

但是当发生这种情况时,请求仍然会在此实例和健康实例之间平均路由。

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

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

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

3.如果您拥有使用w3wp.exe的Web角色,您还可以自动监控您的网站。您的网站代码中的失败会向负载均衡器探针返回非200状态。因此,负载均衡器不会使该实例无法轮换。

4.TCP服务器在超时后没有响应。当探测器标记为未运行时,取决于在将探测器标记为未运行之前配置为未应答的失败探测请求的数量。

有关详细信息,请参阅此article