對於負載平衡工作者,狀態工作者會顯示一些有趣的概觀資訊。它將負載平衡器的成員分類為「良好」、「不良」和「已降低」。此功能可以與外部升級程序結合使用。根據您的整體系統設計和作業實務,您偏好的分類可能會有所不同。
分類基於工作者的啟用狀態(已啟用、已停用或已停止),這是一種純設定狀態,以及執行時間狀態(正常或錯誤,可能包含子狀態閒置、忙碌、復原、探測和強制復原),這僅取決於執行時間情況。
執行時間子狀態具有以下含義
-
正常(閒置):此工作者自上次平衡器維護以來未收到任何要求。預設情況下,平衡器維護每 60 秒執行一次。工作者應為正常,但由於我們一段時間沒有使用它,因此我們無法確定。此狀態在版本 1.2.24 之前稱為 N/A。
-
正常(忙碌):此工作者的所有連線都用於要求。
-
錯誤(復原):工作者已處於錯誤狀態一段時間,現在標記為復原。適合此工作者的下一個要求將使用它。
-
錯誤 (探測):在將執行緒設定為復原後,我們收到適合這個執行緒的請求。現在這個請求正在使用此執行緒。
-
錯誤 (強制復原):執行緒有錯誤,但我們沒有其他可用的執行緒,所以我們繼續使用它。
預設狀態執行緒群組將所有成員分為「良好」,這些成員有「啟動中」的啟動狀態,執行時間狀態不為「錯誤」且子狀態為空。而「不良」群組包含啟動狀態為「已停止」或執行時間狀態為「錯誤」且子狀態為空的成員。
不符合這兩個群組的執行緒會被視為「已降低」。
你可以定義其他規則來將執行緒分組為良好、不良和已降低。兩個屬性「良好」和「不良」可以用逗號分隔的單一字元清單或點分隔的配對來填入。每個字元代表一個可能的狀態的第一個字元,包括「啟動中」、「已停用」、「已停止」、「正常」、「閒置」、「忙碌」、「復原中」和「錯誤」。其他狀態「探測」和「強制復原」會永遠被評為等同於「復原中」。逗號分隔的項目會結合邏輯「或」,如果你結合組態和執行時間狀態並使用點號,它們會結合邏輯「且」。所以「良好」的預設值為「a.o,a.i,a.b,a.r」,而「不良」的預設值為「e,s」。
狀態執行緒會先嘗試與「不良」定義相符,如果失敗,它會嘗試與「良好」相符,最後,如果找不到「不良」或「良好」相符,它會選擇「已降低」。