為服務配置健全狀態檢查,可檢測後端服務運行狀態。若服務執行個體節點發生異常,可下線或隔離異常的節點,以保障路由到該服務的介面可用性。同時可進行恐慌閾值配置,以保障系統在極端情況下的基本服務能力。本文將介紹服務健全狀態檢查功能及相關操作步驟。
使用情境
主動健全狀態檢查:實現服務中個別執行個體節點異常時自動下線(主動發送請求,如TCP連結/HTTP GET、探測服務節點是否存活以及直接判斷節點是否可用),並在節點恢複正常後自動上線。該功能可在後端服務存在多副本部署時,提高路由到該服務的介面的可用性。
被動健全狀態檢查:實現基於實際流量請求失敗率動態分析節點健康狀態,若某節點表現異常(如失敗率過高),將臨時隔離該節點,待恢複後自動重啟用。
恐慌閾值:用於防止在系統負載升高或部分節點故障時,故障擴散至整個叢集,從而避免服務系統性失效。
操作步驟
建立服務時預設開啟TCP健全狀態檢查。
登入AI網關控制台。
在左側導覽列,選擇執行個體,並在頂部功能表列選擇地區。
在執行個體頁面,單擊目標執行個體ID。
在左側導覽列,單擊服務,並單擊服務頁簽。
單擊對應服務操作列下的健全狀態檢查配置。根據健全狀態檢查類型,選擇開啟,並完成相關配置。
配置主動健全狀態檢查
在配置健全狀態檢查面板,開啟開啟主動健全狀態檢查開關並進行相關配置,然後單擊確定。相關配置項說明參考下表:
配置項
樣本值
描述
健全狀態檢查協議
HTTP
TCP協議健全狀態檢查通過發送SYN握手報文來檢測伺服器連接埠是否存活。
HTTP協議健全狀態檢查通過發送請求類比瀏覽器的訪問行為來檢查伺服器應用是否健康。
健全狀態檢查路徑
/
用於健全狀態檢查分頁檔的URI,建議對靜態頁面進行檢查。
正常狀態代碼
http_2xx
用於判斷健全狀態檢查正常的HTTP狀態代碼。
健全狀態檢查響應逾時時間
2
每次健全狀態檢查響應的最大逾時時間,逾時視同不健康。
健全狀態檢查間隔時間
2
相鄰兩次健全狀態檢查的時間間隔。
健全狀態檢查健康閾值
2
雲端服務器從失敗到成功的連續健全狀態檢查成功次數。
健全狀態檢查不健康閾值
2
雲端服務器從成功到失敗的連續健全狀態檢查失敗次數。
配置被動健全狀態檢查
在配置健全狀態檢查面板,開啟開啟被動健全狀態檢查開關並進行相關配置,然後單擊確定。相關配置項說明參考下表:
配置項
樣本值
描述
失敗率閾值
80
當某節點失敗請求佔比達到此閾值,系統將觸發該節點的彈出機制。
活動訊號間隔時間時間
30
每隔指定時間(如 30 秒)計算節點在這段時間內的請求失敗率。
初始隔離時間長度
30
節點被彈出後的初始隔離時間長度(如 30 秒)。隔離時間計算公式:k * base_ejection_time(k 初始值為1),每次彈出會延長隔離時間(k 加一),若連續檢測正常則逐步縮短隔離時間(k 減一)。
說明使用被動健全狀態檢查功能,需將引擎版本提升至2.1.10及以上版本。
當更新被動健康配置時,被動健康檢測狀態將會重設,隔離的節點將全部重新啟用。
恐慌閾值
恐慌閾值用於防止在系統負載升高或部分節點故障時,故障擴散至整個叢集,從而避免服務系統性失效。該機制在可用性與正確性之間實現平衡,保障系統在極端情況下的基本服務能力。
具體行為如下:
當叢集中健康節點的比例高於恐慌閾值時,健全狀態檢查機制正常生效,請求僅路由至被標記為健康的節點,已失效或被彈出的節點將不再接收流量。
當叢集中健康節點的比例小於或等於恐慌閾值時,系統進入“恐慌模式”,健全狀態檢查機制將被臨時繞過,請求會均勻轉寄至所有節點(包括已被標記為不健康或被彈出的節點)。
此配置旨在避免出現大量節點異常時,剩餘少量健康節點因承載全部流量而過載,進而導致級聯故障。通過恢複對部分“非健康”節點的調用,提升整體服務的容錯能力和可用性。
為在極端情境下最大限度保障服務可用性,系統將恐慌閾值預設設為 1%。當健康節點佔比降至該閾值及以下時,系統將切換至恐慌模式,對所有節點轉寄請求。
建議根據實際業務情境和容災能力合理調整該閾值,以取得穩定性與服務正確性之間的最佳平衡。
健全狀態檢查異常排查
一般情況下出現健全狀態檢查異常
排查步驟如下:
若TCP健全狀態檢查失敗,說明此時已經無法跟對應節點建立串連,需確認:
該節點是否存在。
是否並發串連數過高導致無法處理。
若HTTP健全狀態檢查失敗,改為TCP健全狀態檢查並確認是否能建立串連。若TCP健全狀態檢查正常,驗證配置的健全狀態檢查路徑是否正確,可嘗試使用curl/Postman等工具訪問測試。
初次添加服務時出現健全狀態檢查異常
排查步驟如下:
確認所購網關VPC是否與服務執行個體所處VPC一致,或服務所在環境是否已通過雲企業網、專線與網關VPC打通,若VPC不一致且未做VPC連通,網關將無法訪問到執行個體IP。
說明網關不支援通過Nacos、ZooKeeper註冊的本地服務。
確認所購網關VPC是否與服務執行個體所處VPC一致。若不一致且未做VPC連通,則無法訪問到執行個體IP。
確認是否進行了安全性群組授權,若服務來源為ACK服務,需授權容器叢集的安全性群組。更多資訊,請參見設定安全性群組規則。
若不健康的執行個體IP為公網地址,需確認網關所在VPC是否開啟了公網NAT Gateway。