2014-06-24 16 views
1

我有一个Azure webrole项目,它涉及在实例上安装第三方软件的长期启动任务; 偶尔,我看到了一些不响应的实例,所以我正在实施一个探测器,负载平衡器会注意到这一点,并且不会将流量导向不良实例。 这当然是不够的 - 我想要Azure(Fabric?)然后重新引导实例,如果没有帮助(即使实例正确回复探针) - 重新映像实例。 这是行为吗?如果是这样,记录在哪里?我搜索了一段时间,但没有发现任何有用的东西。将Azure重新启动/重新映像/(都)我的实例,如果它没有响应?

谢谢

+0

我知道这并不回答你的问题,但你有没有想过使用虚拟机,而不是Web角色? – CSharpRocks

回答

0

http://blogs.msdn.com/b/kwill/archive/2013/02/28/heartbeats-recovery-and-the-load-balancer.aspx描述了角色实例的健康状况,Azure对恢复的作用以及如何使用负载均衡器探针。

当你说你的实例没有响应,这是否意味着实例在门户中显示为Busy(或者除了Ready之外的东西),或者只是说IIS没有响应请求?如果前者(显示Busy的实例),则不需要负载均衡器探测器,因为Azure会自动从旋转中移除该实例。如果后者(IIS没有响应),那么你可以在你的web代码中实现一个StatusCheck事件,这样如果w3wp本身出现问题,那么这个实例将被该结构取消旋转,但是如果w3wp本身是健康的并且它只是没有响应的请求,那么您将需要负载均衡器探测。

有一个很好的监视和恢复解决方案是非常有价值的,但我会建议,而不是重新启动实例来缓解w3wp问题,而应该调查为什么你的实例没有响应的根本原因。修复问题的根源,而不是应用创可贴:)。在http://blogs.msdn.com/b/kwill/archive/2013/02/28/heartbeats-recovery-and-the-load-balancer.aspx的博客文章,特别是故障排除情况5,可能是开始调查的好地方。

+0

谢谢!这些实例在Azure门户上显示为“就绪”。当我使用RDP并在本地浏览时,他们会返回HTTP 400,当我从外部浏览该服务的URL时,我会看到“糟糕!Google Chrome无法连接”。所以看起来探测器的故障不会导致实例被认为是不好的。 – user2120679

+0

您是否认为我应该返回一个500错误,其中说服务器应该是责怪而不是客户端? – user2120679

相关问题