SpringCloud Alibaba之Sentinel降級設置

享學課堂特邀作者:老顧
轉載請聲明出處!

前言

今天我們繼續介紹SpringCloud Alibaba系列中的Sentinel模塊,之前介紹了Sentinel的流控設置,今天老顧來介紹一些Sentinel的降級設置。

降級

除了流量控制以外,對調用鏈路中不穩定的資源進行熔斷降級也是保障高可用的重要措施之一。由於調用關係的複雜性,如果調用鏈路中的某個資源不穩定,最終會導致請求發生堆積。

Sentinel 熔斷降級會在調用鏈路中某個資源出現不穩定狀態時(例如調用超時或異常比例升高),對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯錯誤。

當資源被降級後,在接下來的降級時間窗口之內,對該資源的調用都自動熔斷(默認行爲是拋出 DegradeException)。

降級相對於流控設置比較簡單,我們來看一下image

我們針對資源/test-a進行降級設置,Sentinel具有3種降級策略,我們來一一說明

RT

RT:平均響應時間 (DEGRADE_GRADE_RT);當 1s 內持續進入 5 個請求,對應時刻的平均響應時間(秒級)均超過閾值(count,以 ms 爲單位),那麼在接下來的時間窗口(DegradeRule 中的 timeWindow,以 s 爲單位)之內,對這個方法的調用都會自動地熔斷(拋出 DegradeException)。

注意 Sentinel 默認統計的 RT 上限是 4900 ms,超出此閾值的都會算作 4900 ms,若需要變更此上限可以通過啓動配置項 -Dcsp.sentinel.statistic.max.rt=xxx 來配置。

我們來個流程圖更清晰點

image

異常比例

異常比例:當資源的每秒請求量 >= 5,並且每秒異常總數佔通過量的比值超過閾值(DegradeRule 中的 count)之後,資源進入降級狀態,即在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 爲單位)之內,對這個方法的調用都會自動地返回。異常比率的閾值範圍是 [0.0, 1.0],代表 0% - 100%。

我們也來上個圖:

image

異常數

異常數:當資源近1分鐘的異常數目超過閾值之後會進行熔斷。注意由於統計時間窗口是分鐘級別的,若 timeWindow 小於 60s,則結束熔斷狀態後仍可能再進入熔斷狀態。所以時間窗口一定要大於等於60秒。

image

注意:異常數是分鐘統計的

總結

上面闡述了Sentinel的降級設置,還是比較靈活的;還有一點就是Sentinel的斷路器是沒有半開狀態的,也許之後的版本會有。

半開的狀態系統自動去檢測是否請求有異常,沒有異常就關閉斷路器,有異常則繼續打開斷路器。具體可以參考Hystrix

今天先介紹降級的設置,下一篇我們就來實戰一下。

如果喜歡本文,可以關注我們的官方賬號,第一時間獲取資訊。
你的關注是對我們更新最大的動力哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章