2012-11-07 66 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