配置流控規則的原理是監控應用或服務流量的QPS指標,當指標達到設定的閾值時立即攔截流量,避免應用被瞬時的流量高峰沖垮,從而保障應用高可用性。本文介紹如何配置和管理流控規則。
背景信息
流量控制在網絡傳輸中是一個常用的概念,常用于調整網絡包的發送數據。系統需處理的請求是隨機不可控的,而系統的處理能力是有限的,因此就需要根據系統的處理能力對流量進行控制。流控規則的配置通常有以下場景:
新建流控規則
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域并在頁面上方選擇所屬微服務空間,在集群類型下拉列表,選擇K8s集群,然后在頁面單擊具體的應用名稱。
在左側導航欄中選擇 。
單擊流控規則頁簽,單擊新增流控規則。
在新增流控防護規則對話框配置參數完成后,單擊新增。
選擇防護場景:
配置項
描述
接口名稱
待流控的資源名稱。
配置防護規則:
配置項
描述
是否集群流控
是否開啟集群流控,即對集群內此資源的調用總量進行限制。
是否開啟
打開開關表示啟用該規則,關閉開關表示禁用該規則。
來源應用
該規則針對的來源應用,默認來源應用為
default
,代表不區分來源應用。統計維度
統計QPS的維度,包含以下三種維度:
當前接口:用于接口調用流控。該接口被來源應用調用次數超過閾值時,會對當前接口來自于來源應用的請求進行流控。
關聯接口:用于資源爭搶情況。當關聯接口被來源應用調用QPS超過閾值時,會對當前接口來自于來源應用的請求進行流控。
例如,
read_db
和write_db
這兩個資源分別代表讀數據庫和寫數據庫。可以為read_db
設置限流規則,將關聯接口名設置為write_db
。當寫數據庫操作過于頻繁時,讀數據的請求會被限流。鏈路入口:用于應用內Call Stack調用流控情況。當Call Stack入口被來源應用調用QPS數超過閾值時,會對當前接口來自于來源應用的請求進行流控。
單機QPS閾值
應用或服務流量的QPS指標。
流控效果
流量控制的方式,包含以下三種方式:
快速失敗:常規流控方式,當前接口超過設置閾值的流量,直接返回默認流控信息,如文本、靜態頁面等。
預熱啟動:適用于避免突增流量瞬間沖擊系統的場景。請求流量會在預熱時間內緩步增加至閾值量級,多余請求會直接拒絕。更多信息,請參見預熱啟動(Warm Up)。
排隊等待:適用于流量勻速器場景。觸發流控后,多余請求會按照順序等待,達到超時時間后失敗。更多信息,請參見削峰填谷。
配置限流行為:
選擇接口類型后,單擊新增行為配置Web行為或RPC行為。
配置成功后,新的隔離規則將出現在流控規則列表中。
管理規則
在規則列表中,您可以編輯、刪除、啟用、禁用、批量啟用或批量禁用規則。
如需編輯規則,單擊目標規則右側操作列中的編輯,并按需修改規則內容。
如需刪除規則,單擊目標規則右側操作列中的刪除,并在對話框中單擊確定。
如需啟用或禁用規則,打開或關閉目標規則右側狀態列中的開關,并在對話框中單擊確定。
如需批量啟用或禁用規則,選中要操作的一個或多個規則,單擊頁面底部的批量開啟或批量關閉,并在對話框中單擊確定。