1. 程式人生 > 實用技巧 >Sentinel 嘚吧嘚

Sentinel 嘚吧嘚

閾值型別/單機閾值:

  QPS(每秒的請求數量):當呼叫該api的QPS達到閾值時,進行限流

  執行緒數:當呼叫該api的執行緒數達到閾值的時候,進行限流

是否叢集:不需要

流控模式:

  •  直接:api達到限流條件時,直接限流
    
  •  關聯:當關聯的資源達到閾值時,就限流自己
    
  •  鏈路:只記錄指定鏈路上的流量(指定資源從入口資源進來的流量,如果達到閾值,就進行限流)【別的針對來源】
    

流控效果:

  快速失敗:直接失敗,拋異常

  Warm Up:根據codeFactor(冷載入因子,預設3)的值,從閾值/codeFactor,經過預熱時長,才達到設定的QPS閾值

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

Sentinel 降級

  •  RT(平均響應時間,秒級):平均響應時間 超出閾值 且在時間視窗內通過的請求>=5,兩個條件同時滿足後觸發降級,時間視窗過期後關閉斷路器,RT最大4900(更大的需要通過-Dscp.sentinel.statistic.max.rt=XXXX才能生效)
    
  •  異常比例(秒級):QPS >= 5 且異常比例(秒級統計)超過閾值時,觸發降級,時間視窗結束後,關閉降級
    
  •  異常數
    

    當資源被降級後,在接下來的降級時間視窗之內,對該資源的呼叫都自動熔斷(預設行為是丟擲DegradeException)
    另外,相對於Hystrix,Sentinel的斷路器是沒有半開狀態的 —————— 半開的狀態系統自動去檢測是否請求有異常,沒有異常就關閉斷路器恢復使用,有異常則繼續開啟斷路器不可用。具體可以參考Hystrix