2012-11-07 39 views
1

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

回答

0

采取纠正措施不是LB工作的一部分。 LB工作正如其名称所暗示的那样 - 平衡跨实例的流量。当我们读深一点in the documentation我们将看到

如果来宾代理失败,反复200 OK与HTTP响应,该 Azure的负载均衡标志着实例作为响应,并且停止 信息流发送到该实例

问题是错误实例将被设置为“无响应”。而现在,Windows Azure Fabric Controller负责管理实例。它检查它们的状态,如果有错误 - 采取纠正措施。

+0

这是否意味着LB通过标记实例没有响应会导致在Fabric Controller中启动适当的纠正措施?比我们可以说LB通过设置实例状态间接通知FC有什么错误? – kosta

0

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

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

RoleEnvironment.RequestRecycle