天天看點

Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例

Sentinel降級-異常比例

一、是什麼

    異常比例 (ERROR_RATIO):當機關統計時長(statIntervalMs)内請求數目大于設定的最小請求數目,并且異常的比例大于門檻值,則接下來的熔斷時長内請求會自動被熔斷。經過熔斷時長後熔斷器會進入探測恢複狀态(HALF-OPEN 狀态),若接下來的一個請求成功完成(沒有錯誤)則結束熔斷,否則會再次被熔斷。異常比率的門檻值範圍是 [0.0, 1.0],代表 0% - 100%。

二、測試

  • 代碼
@GetMapping("/testC")
    public String testC(){
        log.info("------testC 異常比例");
        int age=10/0;
        return "------testC 異常比例";
    }
           
  • 配置
    Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例
  • jemeter壓力測試:
    • 設定每秒請求數
      Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例
    • 設定請求路徑url
      Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例
  • 測試

    1.未使用jemeter情況下測試/testC接口

    會直接報錯,因為定義分母不能為0

    Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例

2.使用jemeter情況下測試/testC接口

自動熔斷,因為每秒請求數大于五并且錯誤率超過了0.2

Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例
Sentinel第五篇(Sentinel降級-異常比例)Sentinel降級-異常比例
  • 結論

    按照上述配置:

  • 單獨通路一次,必然來一次報錯一次(int age = 10/0),調一次錯一次;
  • 異常比例 (ERROR_RATIO):當機關統計時長(statIntervalMs)内請求數目大于設定的最小請求數目,并且異常的比例大于門檻值,則接下來的熔斷時長内請求會自動被熔斷。經過熔斷時長後熔斷器會進入探測恢複狀态(HALF-OPEN

    狀态),若接下來的一個請求成功完成(沒有錯誤)則結束熔斷,否則會再次被熔斷。異常比率的門檻值範圍是 [0.0, 1.0],代表 0% -

    100%。

  • 開啟jmeter後,直接高并發發送請求,多次調用達到我們的配置條件了。斷路器開啟(保險絲跳閘),微服務不可用了,不再報錯error而是服務降級了。

繼續閱讀