负载均衡器 - 对失败实例的恢复操作

时间:2012-11-07 16:02:29

标签: azure load-balancing

我知道LB会在一段时间内探测健康状况。另外我知道最近LB更新了对自定义探针的支持。对于我所知道并且可以找到的所有内容,只有动作LB在接收除200(OK)之外的代码时才会停止向其转发流量。 当实例不响应探测的通知时,负载均衡器是否有任何方法可以执行某些恢复操作?通过恢复操作,我的意思是重新启动有问题的实例或通知某些可以采取进一步行动的服务。

2 个答案:

答案 0 :(得分:0)

采取纠正措施不是LB工作的一部分。 LB工作就是它的名字所暗示的 - 平衡实例之间的流量。当我们读得更深一点in the documentation时,我们会看到

  

如果Guest Agent无法重复响应HTTP 200 OK,则   Azure Load Balancer将实例标记为无响应并停止   向该实例发送流量

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

答案 1 :(得分:0)

自定义负载平衡器探针的目标是它包含自定义逻辑,以确定实例是否正常/准备好接收来自负载均衡器的请求。就像@astaykov已经解释过的那样,负载均衡器的工作不是采取纠正措施,而是由Fabric控制器决定。但Fabric Controller仅监控它所知道的内容。也许你在启动任务中启动一个可执行文件,并且你希望你的实例在这个进程离线时重启(例如,想想一个Node进程)。

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

RoleEnvironment.RequestRecycle