Serverless 應用引擎 SAE(Serverless App Engine)整合Microservices Engine (MSE)的流量防護能力,以流量為切入點,從介面流控、並發隔離、熔斷規則等多個維度來保障業務的穩定性,提供專業穩定的流量防護手段、秒級的流量水位分布分析功能。本文介紹如何設定流量防護的相關規則以及使用樣本。
前提條件
使用限制
僅適用於2023年11月08日起建立的微服務應用。
功能入口
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。

在左側導覽列,選擇,單擊流量防護頁簽。
配置規則
配置流控規則
流控規則通過監控應用或服務流量的QPS指標,當指標達到設定的閾值時立即攔截流量,避免應用被瞬時的流量高峰衝垮,從而保障應用高可用性。
單擊介面流控頁簽,然後單擊新增流控規則。
在新增流控防護規則對話方塊中,配置相關資訊。
在選擇防護情境設定精靈中,選擇介面類型、流量類型和介面名稱,然後單擊下一步。
在配置防護規則設定精靈中,配置相關資訊,單擊下一步。
配置項
說明
是否開啟
開啟表示規則建立成功後立即生效,預設關閉。
單機QPS閾值
觸發對流控介面的統計維度對象的QPS閾值。
流控效果
選擇流控方式來處理被攔截的流量。
快速失敗:達到閾值時,立即攔截請求。按照應用系統設定中的適配模組配置資訊,進行內容返回。
排隊等待:請求勻速通過,允許排隊等待,通常用於請求調用削峰填穀等情境。需要設定具體的逾時時間,達到逾時時間後請求會快速失敗。
在配置防護行為設定精靈中,選擇關聯線為,然後單擊新增。
規則建立成功後,您可以在介面流控頁簽對目標規則進行編輯或刪除等操作。
配置隔離規則
隔離規則通過控制介面或依賴的並發線程數,來保證系統的穩定性。
單擊並發隔離頁簽,然後單擊新增隔離規則。
在新增隔離防護規則對話方塊中,配置相關資訊。
在選擇防護情境設定精靈中,選擇介面類型、流量類型和介面名稱,然後單擊下一步。
在配置防護規則設定精靈中,配置相關資訊,單擊下一步。
配置項
說明
是否開啟
開啟表示規則建立成功後立即生效,預設關閉。
並發數閾值
資源的並發線程數(即該資源正在執行的線程數)閾值。
在配置防護行為設定精靈,選擇關聯線為,然後單擊新增。
規則建立成功後,您可以在並發隔離頁簽對目標規則進行編輯或刪除等操作。
配置熔斷規則
熔斷規則可以監控應用內部或者下遊依賴的回應時間或異常比例。當達到指定的閾值時,系統會立即降低下遊依賴的優先順序。在指定的時間內,系統不會調用該異常資源,避免應用的不穩定運行,從而保障應用的高可用性。指定時間過後,系統會重新恢複對該資源的調用。
單擊熔斷規則頁簽,然後單擊新增熔斷規則。
在新增熔斷防護規則對話方塊,配置相關資訊。
在選擇防護情境設定精靈,選擇介面類型和介面名稱,單擊下一步。
在配置防護規則設定精靈,配置相關資訊,單擊新增。
配置項
描述
统计窗口时长
統計的時間視窗長度,取值範圍為1秒~120分鐘。
最小请求数目
觸發熔斷的最小請求數目,若當前統計視窗內的請求數小於此值,即使達到熔斷條件規則也不會觸發。
阈值类型
選擇以慢调用比例(%)或异常比例(%)作為閾值。
選擇以慢调用比例作為閾值,需要設定允許的慢调用RT(即最大的回應時間),請求的回應時間大於該值則統計為慢調用。
在熔断比例阈值中設定觸發熔斷的慢調用比例。規則開啟後,在單位統計時間長度內請求數目大於設定的最小请求数目,並且慢調用的比例大於閾值,則接下來的熔断时长(s)內請求會自動被熔斷。經過熔斷時間長度後熔斷器會進入探測恢複狀態,若接下來的一個請求回應時間小於設定的慢调用RT則結束熔斷,若大於設定的慢调用RT則會再次被熔斷。
選擇以异常比例作為閾值,需要在熔断比例阈值中設定觸發熔斷的異常比例。
規則開啟後,在單位統計時間長度內業務異常數目大於設定的最小请求数目,並且異常的比例大於閾值,則接下來的熔断时长(s)內請求會自動被熔斷。
熔断时长(s)
單擊顯示進階選項後配置。即熔斷觸發後持續的時間。資源進入熔斷狀態後,在配置的熔斷時間長度內,請求都會快速失敗。
熔断恢复策略
單擊顯示進階選項後配置。熔斷器進入恢複階段(半開啟狀態)的恢複策略。
单次探测恢复:經過熔斷時間長度後,熔斷器會對接下來的一個請求進行探測,若該請求符合預期(不為慢調用或沒有異常),則結束熔斷;否則重新回到熔斷階段。
渐进式恢复:需要設定恢复阶段数和每步最小通过数目。
經過熔斷時間長度後,熔斷器按照設定的恢複階段數進行漸進式恢複,若該階段內請求達到一定量即每步最小通過數目,則觸發檢查。檢查的請求若都未超過閾值,則逐步提高允許通過的請求比例,直到請求完全恢複;若某一步的指標超出閾值,則重新回到熔斷階段。
請求比例T=100/恢複階段數N,則第一階段請求比例為T,第二階段為2T,直到100%。
例如恢複階段數為3,每步最小通過數目為5,則三個階段分別按照33%、67%和100%的比例放入請求,當每階段的請求數目大於等於5時進行檢查,若請求的指標未超閾值則進入下一恢複階段,直至完全恢複。
規則建立成功後,您可以在熔斷規則頁簽對目標規則進行編輯或刪除等操作。
配置熱點參數防護(RPC)規則
為應用配置熱點規則後,系統將分析統計參數,即資源調用過程中的調用次數較高的參數,並根據配置的熱點規則對包含熱點參數的資源調用進行限流,保護系統穩定性。
單擊熱點參數防護(RPC)頁簽,然後單擊新增熱點參數防護(RPC)規則。
在新增熱點參數防護(RPC)規則對話方塊,配置相關資訊。
在選擇防護情境設定精靈,選擇介面名稱,單擊下一步。
在配置防護規則設定精靈,配置相關資訊,單擊下一步。
配置項
描述
参数位置索引
埋點傳入參數的索引位置。對應
SphU.entry(xxx,args)中的參數索引位置。例如在SphU.entry(resourceName,Entry Type.IN,1,paramA,paramB)埋點中,paramA的參數索引是0,paramB的參數索引是1。统计维度
可選擇通過請求數或並發線程數。
通过请求数:限制一段時間內的調用次數。
并发数:限制該資源調用的並發數。
统计周期时间
統計視窗時間長度(單位為秒)。例如統計視窗時間長度為10秒,QPS閾值為5代表限制10秒內每個熱點參數訪問不超過5次。
单机阈值
作用於每個熱點參數的閾值。
流控效果
當统计维度為通过请求数時,可以選擇流控效果來處理被攔截的流量。
快速失败:達到閾值時,立即攔截請求。該模式下可以額外設定一個缓冲请求数,即針對突發請求額外允許的請求數目。
排队等待:請求勻速通過,允許排隊等待,通常用於訊息佇列削峰填穀等情境。需設定具體的逾時時間,排隊時會計算預計的排隊時間長度,若超過最大逾時時間則請求會直接被拒絕。例如,单机阈值配置為5,則代表請求每200毫秒才能通過一個,多出的請求將排隊等待通過。超时时间配置1000毫秒,則當前排隊請求超過5個(>1000毫秒)時,新到來的請求將會直接被拒絕。
是否開啟
開啟表示規則建立成功後立即生效,預設關閉。
在配置防護行為設定精靈,選擇關聯線為,然後單擊新增。
規則建立成功後,您可以在熱點參數防護(RPC)頁簽對目標規則進行編輯或刪除等操作。
配置熱點參數防護(HTTP請求)規則
熱點參數防護規則(HTTP 要求)面向提供Web服務的應用,針對訪問請求中的一些參數項進行精細化的流量控制,可以對請求中IP、Host、Header、URL Param等參數維度資源調用進行流量控制,保障業務與系統的穩定性。
單擊熱點參數防護(HTTP 要求)頁簽,然後單擊新增熱點參數防護(HTTP 要求)。
在新增熱點參數防護(HTTP 要求)對話方塊,配置相關資訊。
在選擇防護情境設定精靈,選擇介面名稱,單擊下一步。
在配置防護規則設定精靈中,配置相關資訊,單擊下一步。
配置項
說明
参数属性
針對所選API的參數屬性進行流量控制。
Client IP:請求端的IP地址。
說明若請求經過代理,會優先嘗試從X-Forwarded-For要求標頭中擷取IP資訊,如果其IP資訊存在,將會使用該IP作為實際請求端IP地址。
Remote Host:請求端的Host Header。
Header:根據指定的HTTP Header進行解析,如果填寫某個具體的Header Key,則該規則針對這個Header Key下面的熱點值分別進行限制。選擇Header後,可選擇配置請求屬性值的匹配策略,只有匹配該模式的請求屬性值會被納入統計和流控。
URL參數:根據指定的HTTP請求參數進行解析,需要填寫對應的參數名稱。選擇URL參數後,可選擇配置請求屬性值的匹配策略,只有匹配該模式的請求屬性值會納入統計和流控。
閾實值型別
預設為請求數。
閾值
觸發對流控介面的統計維度對象的QPS閾值。設定時,需選擇統計時間間隔,支援秒、分鐘、小時和天4種維度。
例如,若閾值填寫為10,統計間隔選擇分,則表示每分鐘對應的請求數目不超過10個。
是否开启
開啟表示規則建立成功後立即生效,預設關閉。
流控方式
單擊顯示進階選項後配置。
快速失败:當閾實值型別為QPS時,被攔截的流量將快速失敗,即達到閾值時,立即攔截請求。
說明被攔截拒絕掉的請求,將返回行為管理中配置的自訂資訊,若未配置會返回預設行為,即429錯誤碼加上預設文本資訊。
排队等待:當閾實值型別為QPS時,被攔截的請求將勻速通過,允許排隊等待。需設定具體的逾時時間,預計達到逾時時間的請求會立即失敗,而不會排隊。例如,QPS配置為10,則代表請求每100毫秒才能通過一個,多出的請求將排隊等待通過。逾時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。
說明排隊等待時,QPS不要超過1000(請求間隔1毫秒)。
Burst size
單擊顯示進階選項後配置。當流控方式選擇為快速失败時,可以額外設定一個Burst Size,即針對突發請求額外允許的請求數目。
逾時時間
單擊顯示進階選項後配置。當流控方式選擇為排队等待時,需設定具體的逾時時間,單位為毫秒。例如,QPS配置為5,則代表請求每200毫秒才能通過一個,多出的請求將排隊等待通過。逾時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。
在配置防護行為設定精靈,選擇關聯線為,然後單擊新增。
規則建立成功後,您可以在熱點參數防護(HTTP請求)頁簽對目標規則進行編輯或刪除等操作。
管理行為
Web行為可以在Web類型埋點資源觸發了某種規則後,返回對應的自訂處理行為,例如,某個Web介面觸發流控規則後返回Blocked by Sentinel的提示文本。
新增行為
單擊行為管理頁簽,然後單擊新增行為。
在新增行為對話方塊,配置相關資訊,然後單擊建立。
新增的行為會顯示在行为管理頁簽中,您可以對目標行為進行修改或刪除等操作。
關聯線為
單擊進流量防護頁簽,選擇目標頁簽,單擊目標規則操作列編輯,配置選擇防護情境和配置防護規則後,在配置防護行為設定精靈,從關聯線為下拉式清單,選擇目標行為進行關聯,或者單擊新增行為來建立新的行為進行關聯。
說明如果您不需要自訂限流後的Fallback行為,選擇預設行為即可,預設介面類型為空白。
新增規則時,如果當前介面已有綁定行為,後續綁定新的行為將覆蓋介面下已有的行為。
選擇Fallback類型時,如果不選擇介面類型,則綁定預設行為;選擇介面類型並綁定相應類型行為後,不可修改。
單擊儲存。