概述
限流降級包含限流和降級兩個功能。限流是指通過調節流量閾值控制通過系統的最大流量值,保證系統安全可靠運行。降級通常用于對下游出現超時的非核心服務提供者進行低優先級調用,確保上游核心應用(服務消費者)不被影響。通過接入限流降級,您實時查看限流降級詳情和動態變更規則,從而全面保障您的應用可用性。使用限流降級需要事先部署時配置限流降級高級配置接入限流降級。
前提條件
- 開通微服務治理中心企業版
- 開啟接入微服務治理和限流降級
規則管理
支持配置流控規則、隔離規則、熔斷規則、主動降級規則、熱點規則、自適應流控等規則。
流控規則
流控規則的原理是監控應用或服務流量的QPS指標,當指標達到設定的閾值時立即攔截流量,避免應用被瞬時的流量高峰沖垮,從而保障應用高可用性。適用于需要限制突發的流量,在盡可能處理請求的同時來保障服務不被擊垮的場景。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇流控規則頁簽,點擊新增進入流控規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱。 |
- 配置防護規則
| 參數 | 描述 |
|---|---|
| 是否集群流控 | 開啟集群流控,對集群內此資源的調用總量進行限制。 |
| 是否開啟 | 打開開關表示啟用該規則,關閉開關表示禁用該規則。 |
| 單機QPS閾值 | 觸發對流控接口的統計維度對象的QPS閾值。 |
| 來源應用 | 該規則針對的來源應用,默認來源應用設為default,代表不區分來源應用。 |
| 統計維度 | 選擇資源調用關系進行流控。 1,當前接口 :直接控制來自來源應用中調用來源的訪問流量,如果來源應用為default則不區分調用來源。通常應用于流量勻速通過的場景。 2,關聯接口 :控制當前資源的關聯資源的流量。通常應用于資源爭搶時,留足資源給優先級高接口的場景。 3,鏈路入口 :控制該資源所在的調用鏈路的入口流量。選擇鏈路入口后需要繼續配置入口資源,即該調用鏈路入口的上下文名稱。通常應用于預熱啟動避免大流量沖擊的場景 |
| 流控效果 | 選擇流控方式來處理被攔截的流量。 1,快速失敗: 達到閾值時,立即攔截請求。按照應用系統設置中的適配模塊配置信息,進行內容返回。 2,預熱啟動: 需設置具體的預熱時間。 如果系統在此之前長期處于空閑的狀態,當流量突然增大的時候,該方式會讓處理請求的速率緩慢增加,經過設置的預熱時間以后,到達系統處理請求速率的設定值。 默認會從設置的QPS閾值的1/3開始慢慢往上增加至設置的QPS值,多余請求會按照快速失敗處理。 3,排隊等待: 請求勻速通過,允許排隊等待,通常用于請求調用削峰填谷等場景。需設置具體的超時時間,達到超時時間后請求會快速失敗。 |
- 配置限流行為
配置行為主要是配置Fallback行為。Fallback行為定義某個埋點資源觸發了某種規則(如流控、熔斷、降級)后的處理行為。目前Fallback行為僅支持Web和RPC兩種資源類型。如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可。
配置成功后,新的流控規則將出現在流控規則列表中。
隔離規則
隔離規則通過控制接口或依賴的并發線程數,來保證系統的穩定性。適用于在調用第三方服務時,防止過多的慢調用擠占正常調用的資源,避免服務不可用。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇隔離規則頁簽,點擊新增進入規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱 |
- 配置防護規則
| 參數 | 描述 |
|---|---|
| 是否開啟 | 打開開關表示啟用該規則,關閉開關表示禁用該規則。 |
| 并發數閾值 | 資源的并發線程數(即該資源正在執行的線程數)閾值。 |
| 來源應用 | 該規則針對的來源應用,默認來源應用設為default,代表不區分來源應用。 |
| 統計維度 | 選擇資源調用關系進行流控。 1,當前接口 :直接控制來自來源應用中調用來源的訪問流量,如果來源應用為default則不區分調用來源。通常應用于流量勻速通過的場景。 2,關聯接口 :控制當前資源的關聯資源的流量。通常應用于資源爭搶時,留足資源給優先級高接口的場景。 3,鏈路入口 :控制該資源所在的調用鏈路的入口流量。選擇鏈路入口后需要繼續配置入口資源,即該調用鏈路入口的上下文名稱。通常應用于預熱啟動避免大流量沖擊的場景。 |
- 配置限流行為
配置行為主要是配置Fallback行為。Fallback行為定義某個埋點資源觸發了某種規則(如流控、熔斷、降級)后的處理行為。目前Fallback行為僅支持Web和RPC兩種資源類型。如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可。
配置成功后,新的隔離規則將出現在隔離規則列表中。
熔斷規則
熔斷規則可以監控應用內部或者下游依賴的響應時間或異常比例,當達到指定的閾值時立即降低下游依賴的優先級。在指定的時間內,系統不會調用該不穩定的資源,避免應用受到影響,從而保障應用高可用性,當指定時間過后,再重新恢復對該資源的調用。用于避免局部不穩定因素(某個慢調用、異常服務)導致整體的雪崩。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇熔斷規則頁簽,點擊新增進入熔斷規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱。 |
- 配置防護規則
| 參數 | 描述 |
|---|---|
| 統計窗口時長 | 統計的時間窗口長度,取值范圍為1秒~120分鐘。 |
| 閾值類型 | 可選擇慢調用比例、異常比例、異常個數閾值類型。 1,慢調用比例 : 需要設置允許的慢調用RT(即最大的響應時間),請求的響應時間大于該值則統計為慢調用。 規則開啟后,在單位統計時長內請求數目大于設置的最小請求數目,并且慢調用的比例大于閾值,則接下來的熔斷時長內請求會自動被熔斷。 2,異常比例 : 需要在降級閾值中設置觸發熔斷的異常比例。 規則開啟后,在單位統計時長內業務異常數目大于設置的最小請求數目,并且異常的比例大于閾值,則接下來的熔斷時長內請求會自動被熔斷。 3,異常個數: 需要在降級閾值中設置觸發熔斷的異常個數。 規則開啟后,在單位統計時長內業務異常數目大于設置的最小請求數目,則接下來的熔斷時長內請求會自動被熔斷。 |
| 降級閾值 | 觸發閾值類型的閾值。 |
| 熔斷時長 | 即熔斷觸發后持續的時間。 資源進入熔斷狀態后,在配置的熔斷時長內,請求都會快速失敗。 |
| 是否開啟 | 打開開關表示啟用該規則,關閉開關表示禁用該規則。 |
| 最小請求數目 | 觸發熔斷的最小請求數。 |
| 熔斷策略 | 熔斷器進入恢復階段(半開啟狀態)的恢復策略。 1,單次探測恢復: 經過熔斷時長后,熔斷器會對接下來的一個請求進行探測,若該請求符合預期(不為慢調用或沒有異常),則結束熔斷;否則重新回到熔斷階段。 2,漸進式恢復: 需要設置恢復階段數和每步最小通過數目。 經過熔斷時長后,熔斷器按照設定的恢復階段數進行漸進式恢復,若該階段內請求達到一定量即每步最小通過數目,則觸發檢查。 檢查的請求若都未超過閾值,則逐步提高允許通過的請求比例,直到請求完全恢復;若某一步的指標超出閾值,則重新回到熔斷階段。 |
- 配置限流行為
配置行為主要是配置Fallback行為。Fallback行為定義某個埋點資源觸發了某種規則(如流控、熔斷、降級)后的處理行為。目前Fallback行為僅支持Web和RPC兩種資源類型。如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可。點擊確定即可新增流控行為。
配置成功后,新的熔斷規則將出現在熔斷規則列表中。
主動降級規則
主動降級規則可以指定對某些接口進行降級,被降級的接口會觸發自定義的降級行為而不會執行原有的邏輯。主要用于在流量高峰時保障核心功能而將非核心功能返回預先準備的數據。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇主動降級規則頁簽,點擊新增進入主動降級規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱。 |
- 配置限流行為
| 參數 | 描述 |
|---|---|
| 關聯行為 | 統計表示開啟該降級規則后,該接口調用的行為。 默認行為對應應用設置頁面基礎設置中的模塊適配設置Web的配置。 |
若需要新增行為,單擊“新增行為 ”,完成以下配置,然后單擊“新增”:
Web行為:
| 參數 | 描述 |
|---|---|
| 行為名稱 | 該行為的名稱。長度不超過128個字符,同個應用內名稱不能重復。 |
| 針對的資源類型 | 支持Web和Rpc兩種類型,此處僅為Web。 |
| Web限流處理策略 | 定義Web接口訪問觸發某種規則后的行為表現。目前支持以下兩種策略: 1,自定義返回: 需設置HTTP返回狀態碼、返回內容的格式和返回的內容。表示Web接口訪問觸發規則后返回自定義的內容。 2,跳轉到指定頁面: 需設置指定跳轉的URL。表示Web接口訪問觸發規則后系統會跳轉指定的頁面URL。 |
| HTTP返回狀態碼 | 默認為429。當Web限流處理策略為自定義返回時,需要填寫。 |
| 返回content-type | 設置返回內容的格式為普通文本(TEXT)或JSON。當Web限流處理策略為自定義返回時,需要填寫。 |
| HTTP返回文本 | 輸入當Web接口訪問觸發規則后返回的內容。當Web限流處理策略為自定義返回時,需要填寫。 |
| 跳轉地址 | 輸入當Web接口訪問觸發規則后系統會跳轉的頁面URL。當Web限流處理策略為跳轉到指定頁面時,需要填寫。 |
Rpc行為:
| 參數 | 描述 |
|---|---|
| 行為名稱 | 該行為的名稱。長度不超過128個字符,同個應用內名稱不能重復。 |
| 針對的資源類型 | 支持Web和Rpc兩種類型,此處僅為Rpc。 |
| 緩存實例 | 是否緩存返回值。若開啟,則會緩存生成的Fallback對象,在該行為觸發時,均復用同一對象。 |
| Rpc限流處理策略 | 定義Rpc接口訪問觸發某種規則后的行為表現。目前支持以下兩種策略: 1,自定義返回: 自定義返回結果。需設置返回類型和返回的內容,表示Rpc接口訪問觸發規則后返回自定義的實體類。 2,自定義異常: 拋出自定義異常。需設置異常的類名和異常文本,表示Rpc接口訪問觸發規則后系統會返回指定的異常信息。 |
| 返回類型獲取方式 | 填充返回值類名的方式,分別為: 1,手動輸入: 選擇手動輸入模式,需要填寫自定義返回值的全限定類名(返回值類名),然后單擊校驗進行有效性校驗,校驗通過后可以創建行為。 2,自動探測: 選擇自動探測模式,需要選擇創建RPC行為的接口方法(行為關聯方法)。 控制臺會根據選擇的行為關聯方法,自動填充方法返回值類名,然后填寫完成對象內容(JSON格式)后可以創建行為。 |
| 行為關聯類名 | 當返回類型獲取方式為自動探測時,需要選擇當前Rpc行為關聯的接口方法,方法返回值類型即為當前自定義返回值的類型。 |
| 返回值類名 | 選擇Rpc限流處理策略為自定義返回時,需填寫的類名稱路徑。 |
| 對象內容 | 選擇RPC限流處理策略為自定義返回時,填寫當Rpc接口訪問觸發規則時返回結果的對象內容(JSON格式)。 |
| 異常類名 | 選擇Rpc限流處理策略為自定義異常時,需填寫的異常類名稱路徑。 |
| 異常信息文本 | 選擇Rpc限流處理策略為自定義異常時,填寫Rpc接口訪問觸發規則后拋出自定義異常的文本信息。 |
配置成功后,新的主動降級規則將出現在主動降級規則列表中。
熱點規則
熱點規則通過分析統計參數,即資源調用過程中的調用次數較高的參數,并根據配置的熱點規則對包含熱點參數的資源調用進行限流,保護系統穩定性。適用于針對某些熱點數據中訪問頻次最高的Top數據進行控制的場景。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇熱點規則頁簽,點擊新增進入熱點規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱。 |
- 配置防護規則
| 參數 | 描述 |
|---|---|
| 參數位置索引 | 埋點傳入參數的索引位置。 |
| 統計維度 | 可選擇通過請求數或并發線程數。 1,通過請求數: 限制一段時間內的調用次數。 2,并發數: 限制該資源調用的并發數。 |
| 統計周期時間 | 統計窗口時間長度(單位為秒)。 |
| 單機閾值 | 是作用于每個熱點參數的閾值。 |
| 流控效果 | 當統計維度為通過請求數時,可以選擇流控效果來處理被攔截流量。 1,快速失敗: 達到閾值時,立即攔截請求。 該模式下可以額外設置一個緩沖請求數,即針對突發請求額外允許的請求數目。 2,排隊等待: 請求勻速通過,允許排隊等待,通常用于消息隊列削峰填谷等場景。 需設置具體的超時時間,排隊時會計算預計的排隊時長,若超過最大超時時間則請求會直接被拒絕。 |
| 是否開啟 | 打開開關表示啟用該規則,關閉開關表示禁用該規則。 |
- 配置限流行為
配置行為主要是配置Fallback行為。Fallback行為定義某個埋點資源觸發了某種規則(如流控、熔斷、降級)后的處理行為。目前Fallback行為僅支持Web和RPC兩種資源類型。如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可。
配置成功后,新的熱點規則將出現在熱點規則列表中。
自適應流控
系統支持自適應流控或手動設置系統規則,自適應流控是根據系統的CPU使用率自動動態地調整應用程序的入口流量;系統規則是從整體維度手動設置規則,對應用入口流量進行控制。目的都是為了讓系統的入口流量和系統的負載達到一個平衡,保證系統在最大吞吐量狀態下穩定運行。
- 在應用總覽頁面,選擇限流降級-規則管理,進入規則管理頁面
- 選擇自適應流控頁簽,點擊新增進入系統規則配置頁面
- 選擇防護場景
| 配置項 | 描述 |
|---|---|
| 接口名稱 | 待流控的資源名稱。 |
- 配置防護規則
| 參數 | 描述 |
|---|---|
| 統計維度 | CPU使用率 : 當系統CPU使用率超過閾值即觸發系統保護,閾值設置范圍為0.0~1.0(代表0%~100%)。 Load : 限當系統的Load超過閾值,且系統當前的并發線程數超過系統容量時才會觸發系統保護。 線程數: 當單臺機器上所有入口流量的并發線程數達到閾值即觸發系統保護。 入口平均RT: 當單臺機器上所有入口流量的平均RT達到閾值即觸發系統保護,單位是毫秒。 入口總QPS: 當單臺機器上所有入口流量的QPS達到閾值即觸發系統保護。 |
| 閾值 | 對應統計維度的閾值。 |
| 是否開啟 | 打開開關表示啟用該規則,關閉開關表示禁用該規則。 |
- 配置限流行為
配置行為主要是配置Fallback行為。Fallback行為定義某個埋點資源觸發了某種規則(如流控、熔斷、降級)后的處理行為。目前Fallback行為僅支持Web和RPC兩種資源類型。如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可。
配置成功后,新的流控規則將出現在流控規則列表中。
操作日志
操作日志記錄限流降級相關操作日志,您可以查看所有的限流降級操作信息,如操作時間、類別、操縱內容和操作等。
接口監控
接口監控主要展示該應用所有接口的通過QPS、拒絕QPS、異常QPS、RT、并發數據等監控信息。