Sentinel隔離和降級-熔斷策略


斷路器熔斷策略有三種:慢調用、異常比例、異常數

1.慢調用
業務的響應時長(RT)大於指定時長的請求認定為慢調用請求。在指定時間內,如果請求數量超過設定的最小數量,慢調用比例大於設定的閾值,則觸發熔斷。例如:

解讀:RT超過500ms的調用是慢調用,統計最近10000ms內的請求,如果請求量超過10次,並且慢調用比例>=0.5,則觸發熔斷,熔斷時長為5秒。然后進入half-open狀態(半開路狀態),放行一次請求做測試。

需求:給 UserClient的查詢用戶接口設置降級規則,慢調用的RT閾值為50ms,統計時間為1秒,最小請求數量為5,失敗閾值比例為0.4,熔斷時長為5
提示:為了觸發慢調用規則,我們需要修改UserService中的業務,增加業務耗時:

    /** * 路徑: /user/110 * * @param id 用戶id * @return 用戶 */ @GetMapping("/{id}") public User queryById(@PathVariable("id") Long id, @RequestHeader(value = "Truth", required = false) String truth) throws InterruptedException { log.info(String.format("userId=%s", id)); if (id == 1) { // 休眠,觸發熔斷
            Thread.sleep(60); } else if (id == 2) { throw new RuntimeException("故意出錯,觸發熔斷"); } return userService.queryById(id); }

 

2.熔斷策略-異常比例、異常數
異常比例或異常數:統計指定時間內的調用,如果調用次數超過指定請求數,並且出現異常的比例達到設定的比例閾值(或超過指定異常數),則觸發熔斷。例如:

解讀:統計最近1000ms內的請求,如果請求量超過10次,並且異常比例不低於0.4,則觸發熔斷,熔斷時長為5秒。然后進入half-open狀態,放行一次請求做測試。

總結
Sentinel熔斷降級的策略有哪些?
1.慢調用比例:超過指定時長的調用為慢調用,統計單位時長內慢調用的比例,超過閾值則熔斷
2.異常比例:統計單位時長內異常調用的比例,超過閾值則熔斷
3.異常數:統計單位時長內異常調用的次數,超過閾值則熔斷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM