天天看點

Sentinel的常用配置詳解

Sentinel的常用配置詳解

1.流控

1.快速使用

在接口上點選流控,設定單機門檻值(每秒鐘的并發量),針對來源不用修改。

Sentinel的常用配置詳解

使用postman測試,當多次點選後會報錯。

Sentinel的常用配置詳解

2.配置詳解(無特殊需求可以跳過)

Sentinel的常用配置詳解

1.門檻值類型

  1. 線程數:當操作線程大于配置,限流!
  2. QPS:當每秒并發數大于配置,限流!

2.流程模式

  1. 直接:直接限流,上文執行個體展示。
  2. 關聯:被關聯的資源達到門檻值,導緻目前資源被限流。(如下:當B超過QPS為1之後,A限流:)
Sentinel的常用配置詳解
  1. 鍊路:鍊路上遊達到門檻值,目前資源限流。例如:接口的上遊都是sentinel_spring_web_context如果sentinel_spring_web_context超過門檻值,demo限流!
Sentinel的常用配置詳解

3.流控效果

  1. 直接失敗:直接抛出異常,上文示例方式。
  2. warm up:當系統長期處于低水位的情況下,當流量突然增加時,直接把系統拉升到高水位可能瞬間把系統壓垮。通過"冷啟動",讓通過的流量緩慢增加,在一定時間内逐漸增加到門檻值上限,給冷系統一個預熱的時間,避免冷系統被壓垮。warm up冷啟動主要用于啟動需要額外開銷的場景,例如建立資料庫連接配接,秒殺等等,防止服務瞬間被打垮。白話講就是,根據冷加載因子,預設3,經過一段時間,才能達到預設的QPS。下圖含義是初始門檻值為10/3 = 3,在5秒内到達QPS到達10。
Sentinel的常用配置詳解
  1. 排隊等待:當達到門檻值,請求一個一個通過,排隊超過1s,抛出異常。
Sentinel的常用配置詳解

2.降級

1.慢調用比例

滿足兩個條件會觸發熔斷:

  1. 請求數大于最小請求數。下面是每秒鐘5個。
  2. 慢請求達到設定的比例。(請求時間大于最大RT的次數*比例門檻值)
Sentinel的常用配置詳解

2.異常比例

需要兩個條件。

  1. 每秒鐘請求超過最小請求數,這裡是五個。
  2. 異常比例超過50%觸發熔斷。
Sentinel的常用配置詳解

3.異常數

  1. 每秒鐘請求超過最小請求數 ,這裡是五個。
  2. 異常數大于5個。
Sentinel的常用配置詳解

3.熱點規則

熱點規則是按照參數值進行限流。下文含義是,監控/demo接口 如果有第一個參數,那麼每秒的qps為1,如果第一個參數值為"a",QPS為20。

Sentinel的常用配置詳解

1.系統規則

系統保護規則是從應用級别的入口流量進行控制,從單台機器的 load、CPU 使用率、平均 RT、入口 QPS 和并發線程數等幾個次元監控應用名額,讓系統盡可能跑在最大吞吐量的同時保證系統整體的穩定性。

  1. Load 自适應(僅對 Linux/Unix-like 機器生效):系統的 load1 作為啟發名額,進行自适應系統保護。當系統 load1 超過設定的啟發值,且系統目前的并發線程數超過估算的系統容量時才會觸發系統保護(BBR 階段)。系統容量由系統的

    maxQps * minRt

    估算得出。設定參考值一般是

    CPU cores * 2.5

  2. CPU usage(1.5.0+ 版本):當系統 CPU 使用率超過門檻值即觸發系統保護(取值範圍 0.0-1.0),比較靈敏。
  3. 平均 RT:當單台機器上所有入口流量的平均 RT 達到門檻值即觸發系統保護,機關是毫秒。
  4. 并發線程數:當單台機器上所有入口流量的并發線程數達到門檻值即觸發系統保護。
  5. 入口 QPS:當單台機器上所有入口流量的 QPS 達到門檻值即觸發系統保護。
可以了解為系統規則是全局的限流配置,可以針對服務的全局QPS、機器的CPU等參數進行限流。
Sentinel的常用配置詳解

4.問題

問題一:發現sentinel報錯,檢視日志。

Sentinel的常用配置詳解

然後檢視spring boot業務項目,發現出現以下錯誤 ,發現fastjson版本不對,然後去目前對象的sentinel中檢視jar包版本替換即可。

Sentinel的常用配置詳解