天天看點

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

1. 檢視簇點鍊路

Sentinel 将每一個需要流控的 URL 或者接口稱為一個資源,并使用URL位址或方法簽名表示資源。Sentinel 會自動發現所有潛在的資源和資源之間的調用鍊,并在簇點鍊路頁面展示。 資源是設定流控規則的載體,通過簇點鍊路自發現,可以友善的對重要資源設定流控規則、熔斷降級規則等。

說明:用戶端有通路量之後,才能在簇點鍊路頁面看到資源監控(lazy-initializing)。

1.登入Sentinel控制台。

2.單擊左側導航欄中的簇點鍊路,可以看見微服務曾經被通路過的路徑,同時在通路過的路徑後的操作欄中可以進行流控、降級、熱點、授權操作。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖1:控制台

2. 配置留白規則

流量控制規則用于保護服務提供方,服務提供方指任何可以對外提供服務的系統,系統的服務能力是有限的,如果消費方請求速度過高,則采用相應的保護政策,或是直接拒絕,或是排隊等待。通過流控規則頁面可以檢視和配置流量控制規則。

1.單擊流控規則頁簽,然後在頁面右上角單擊新增流控規則。

2.在建立流控規則對話框中配置規則資訊。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖2:建立流控規則

  • 資源名:即待流控的資源名稱。
  • 針對來源:即該規則針對的來源應用,預設來源應用設為 default,代表不區分來源應用。
  • 門檻值類型:應用或服務流量的 QPS 或線程數名額。

    ①QPS(每秒鐘的請求數量):當調用該api的QPS達到門檻值的時候,進行限流。

    ②線程數:當調用該api的線程數達到門檻值的時候,進行限流。

  • 流控模式:選擇資源調用關系進行流控。資源關系有:直接、關聯和鍊路三種。

    ①直接:api達到限流條件時,直接限流。

    ②關聯:當關聯的資源達到門檻值時,就限流自己。

    ③鍊路:隻記錄指定鍊路上的流量(指定資源從入口資源進來的流量,如果達到門檻值,就進行限流)

  • 流控效果:當門檻值類型門檻值類型為 QPS 時,可以選擇流控方式來處理被攔截的流量。

    ①快速失敗:達到門檻值時,立即攔截請求。

    ②Warm Up:根據codeFactor(冷加載因子,預設的值,從門檻值/codeFactor,經過預熱時長,才達到設定的QPS門檻值。

    ③排隊等待:勻速排隊,讓請求以勻速的速度通過,門檻值類型必須設定為QPS,否則無效。

3.單擊新增。新的流控規則将出現在流控規則清單中。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖3:流控規則清單

3. 配置降級規則

降級規則用于保護服務消費方。在微服務架構中,業務系統通常要依賴多個服務,依賴的某個服務不可用将會影響業務系統的可用性。解決這個問題的方法是及時發現服務的不可用狀态,在調用時快速失敗而不是等待調動逾時或者重試。Sentinel 通過熔斷降級來達到快速失敗的目的。通過降級規則頁面可以檢視和配置降級規則。

1.單擊降級規則頁簽,然後在頁面右上角單擊建立降級規則。

2.在建立降級規則對話框中配置規則資訊。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖4:降級規則

  • 資源名稱:适用該規則的應用資源。
  • 降級政策:

    ①RT:平均響應時間(秒級統計)超出門檻值且在時間視窗内的請求 >= 5時,觸發降級;時間視窗結束後,關閉降級(Sentinel預設最大的RT為4900ms,可以通過-Dcsp.sentinel.statistic.max.rt=xxx修改)。

    ②異常比例:QPS>= 5 且異常比例(秒級統計)超過門檻值時,觸發降級;時間視窗結束後,關閉降級。

    ③異常數:異常數(分鐘統計)超過門檻值時,觸發降級;時間視窗結束後,關閉降級(時間視窗< 60秒可能會出現問題)。

  • 時間視窗:即降級觸發後持續的時間。資源進入降級狀态後,在配置的降級視窗時間内,請求都會快速失敗。

3.單擊新增。配置成功後,新的降級規則将出現在降級規則清單中。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖5:降級規則清單

4. 配置熱點規則

為應用配置熱點規則後,EDAS 将分析統計熱點參數(資源調用過程中的調用次數較高的參數),并根據配置的熱點規則對包含熱點參數的資源調用進行限流,保護系統穩定性。

說明:Sentinel預設顯示的端點并不支援熱點規則,要顯示熱點規則,需要自己添加代碼。

@ApiOperation(value = "擷取調用中間服務傳回資訊")
@RequestMapping(value = "/echo-mid", method = RequestMethod.GET)
@SentinelResource("/echo-mid") 
public String midRest(@RequestParam("str") String str) {
       MockService.mock2();
       return restTemplate.getForObject("http://nacos-service-broker/echo-mid?str="
+ str, String.class) + "\r\n";
}           

1.單擊熱點規則頁簽,然後在頁面右上角單擊新增熱點規則。

2.在新增熱點規則對話框中,配置規則資訊。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖6:熱點規則

  • 資源名:适用該規則的資源名稱,與埋點傳入的資源名保持一緻。
  • 參數索引:埋點傳入參數的索引位置。
  • 門檻值:是作用于每個熱點參數的門檻值。
  • 統計視窗時長:統計視窗時間長度(機關為秒)。例如統計視窗時長為 10s,QPS 門檻值為 5 代表限制 10s 内每個熱點參數通路不超過 5 次。

3.單擊新增。配置成功後,新的熱點規則将出現在熱點規則清單中。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖7:熱點規則清單

5. 配置授權規則

1.單擊授權規則頁簽,然後在頁面右上角單擊新增授權規則。

2.在新增授權規則對話框中,配置規則資訊。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖8: 授權規則

  • 流控應用:添加微服務。

3.單擊新增。配置成功後,新的授權規則将出現在授權規則清單中。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖9:授權規則清單

6. 配置系統規則

系統規則從整體次元對應用入口流量進行控制,結合應用的 Load、CPU 使用率、總體平均 RT、入口 QPS 和并發線程數等幾個次元的監控名額,結合自适應的流控政策,讓系統的入口流量和系統的負載達到一個平衡,保證系統在最大吞吐量狀态下穩定運作。

1.單擊系統規則頁簽,然後在頁面右上角單擊新增系統規則。

2.在新增系統規則對話框中,配置規則資訊。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖10:系統規則

  • 門檻值類型:

    ①LOAD(僅對Linux/Unix-like 機器生效):當系統 load1 超過門檻值,且系統目前的并發線程數超過系統容量時才會觸發系統保護。系統容量由系統的 maxQps minRt 計算得出。設定參考值一般是 CPU cores 2.5。

    ②RT:當單台機器上所有入口流量的平均 RT 達到門檻值即觸發系統保護,機關是毫秒。

    ③線程數:當單台機器上所有入口流量的并發線程數達到門檻值即觸發系統保護。

    ④入口 QPS:當單台機器上所有入口流量的 QPS 達到門檻值即觸發系統保護。

    ⑤CPU 使用率:當系統 CPU 使用率超過門檻值即觸發系統保護(取值範圍 0.0~1.0)。

3.單擊新增。配置成功後,新的系統規則将出現在系統規則清單中。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則

圖11:系統規則清單

往期内容

專有雲Spring Cloud應用限流降級--Series1:遷移指導 專有雲Spring Cloud應用限流降級--Series2:應用部署

我們是阿裡雲智能全球技術服務-SRE團隊,我們緻力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基于雲建構更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運作更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿裡雲SRE技術學院釘釘圈子,和更多雲上人交流關于雲平台的那些事。

專有雲Spring Cloud應用限流降級--Series3:配置控制台規則