2014-06-24 15 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

相關問題