1

我知道 LB 会在某个时间段内探测实例的运行状况。我也知道最近 LB 更新了对自定义探针的支持。据我所知和所能找到的,LB 在接收除 200(OK)以外的代码时唯一采取的行动是停止向其转发流量。当注意到实例没有响应探测时,负载均衡器有什么办法可以执行一些恢复操作?通过恢复操作,我的意思是重新启动有问题的实例或通知一些可以采取进一步行动的服务。

4

2 回答 2

0

自定义负载均衡器探测的目标是它包含自定义逻辑来确定实例是否健康/准备好接收来自负载均衡器的请求。就像@astaykov 已经解释的那样,负载均衡器的工作不是采取纠正措施,而是由结构控制器决定。但是 Fabric Controller 只监控它知道的内容。也许您正在启动任务中启动一个可执行文件,并且您希望您的实例在该进程脱机时重新启动(例如,考虑一个 Node 进程)。

如果此进程处于脱机状态并尝试重新启动它,您的自定义负载均衡器探测可能会返回状态 500。同时,负载均衡器不会将请求转发到该特定实例。在您的探测中,您还可以尝试重新启动该过程,如果几次后失败,您可以自己请求重新启动(以干净的方式):

RoleEnvironment.RequestRecycle

于 2012-11-08T07:05:45.393 回答
0

采取纠正措施不是 LB 工作的一部分。LB 工作正如它的名字所暗示的那样 - 平衡实例之间的流量。当我们更深入地阅读文档时,我们会看到

如果来宾代理无法反复响应 HTTP 200 OK,Azure 负载均衡器会将实例标记为无响应并停止向该实例发送流量

关键是故障实例将被设置为“无响应”。现在管理实例是 Windows Azure Fabric Controller 的工作。它检查他们的状态,如果有问题 - 采取纠正措施。

于 2012-11-07T19:51:04.777 回答