過載管理器
過載管理器是一個可擴展的組件,用於保護 Envoy 伺服器免受過多的客戶端連線或請求導致的各種系統資源(例如記憶體、CPU 或檔案描述符)過載。這與斷路不同,後者主要旨在保護上游服務。
過載管理器透過指定一組要監控的資源以及當某些資源超過特定壓力閾值時將採取的過載操作,進行設定。
架構
過載管理器的工作原理是定期輪詢一組資源的壓力,將這些壓力透過觸發器饋送,並根據觸發器採取動作。資源監視器、觸發器和動作的集合在啟動時指定。
資源
資源是過載管理器可以監控的事物,其壓力由 [0, 1] 範圍內的實數值表示。資源的壓力由資源監視器評估。請參閱設定頁面以設定資源監視器。
觸發器
觸發器在每次資源壓力更新時進行評估,並將資源壓力值轉換為動作狀態。動作狀態的值在 [0, 1] 範圍內,並分為兩組之一
動作狀態 |
值 |
描述 |
---|---|---|
縮放 |
[0, 1) |
資源壓力低於設定的飽和點;可以採取動作 |
飽和 |
1 |
資源壓力等於或高於設定的飽和點;應採取劇烈行動 |
當資源壓力值更新時,相關觸發器會重新評估。對於至少有一個觸發器的每個動作,產生的動作狀態是設定觸發器的最大值。動作狀態的影響取決於動作的設定和實作。
動作
當觸發器改變狀態時,該值會被傳送到註冊的動作,然後這些動作會影響連線和請求的處理方式。每個動作對輸入狀態的解釋都不同,有些動作可能會完全忽略縮放狀態,僅在飽和時生效。
請注意,如果append_local_overload已設定為 true,則丟棄 HTTP 請求將會導致在連線管理器發送的本地回覆中設定x-envoy-local-overloaded標頭。