1 7 Sentinel熱點規則

2021-10-10 19:55:45 字數 988 閱讀 8350

1、基本設定

熱點規則指的是對api請求中的熱點引數進行限流,當設定限流的引數達到閾值時,執行限流;在testcontroller控制器中新增乙個api端點,並加上@sentinelresource註解,訪問位址為 /test/t-hot?a=1&b=2 ,它接受兩個引數,方法實現**如下:

在簇點鏈路中對上述方法新增【+熱點】,規則設定如下所示:

如上圖所示,引數索引 0 表示第乙個引數a,當api請求中附帶了引數 a 且閾值達到 1 時,請求就會被限流,如果沒有附帶引數 a 則不會執行限流。

在idea中為內容中心的測試控制器新增上述的請求api,重啟內容中心後測試熱點規則,效果如下所示:

當帶了引數 a 時會被限流,不帶引數 a 時則不會限流。

2、高階選項

通過高階選項可以針對引數的值進行限流,設定規則如下所示:

如上圖設定的規則,當引數 a=5 時限流的閾值為1000,a≠5時限流的閾值為1,這就是針對引數的值進行限流。

熱點規則一般用於熱詞搜尋場景中,比如每年蘋果新出手機的那幾天iphone這個詞的搜尋量就會非常龐大,此時就可以針對這個詞做熱點規則的限流設定。

另外,熱點規則對應的原始碼類和方法如下所示:com.alibaba.csp.sentinel.slots.block.flow.param.paramflowchecher#passcheck

Sentinel 熱點規則 系統規則

將商品檢視介面看做成乙個 sentinelresource sentinelresource value getorder public orderinfo getinfo pathvariable long id,authenticationprincipal string username 在 ...

sentinel系統規則

load 自適應 僅對 linux unix like 機器生效 系統的 load1 作為啟發指標,進行自適應系統保護。當系統 load1 超過設定的啟發值,且系統當前的併發執行緒數超過估算的系統容量時才會觸發系統保護 bbr 階段 系統容量由系統的 maxqps minrt 估算得出。設定參考值一...

Sentinel規則持久化

一旦我們重啟應用,sentinel規則將消失,生產環境需要將配置規則進行持久化 該怎麼做 將限流配置規則持久化進nacos儲存,只要重新整理8401某個rest位址,sentinel控制台的流控規則就能看到,只要nacos裡面的配置不刪除,針對8401上sentinel上的流控規則持續有效 1 修改...