您好,登錄后才能下訂單哦!
小編給大家分享一下Sentinel服務治理知識點有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
把隨機來的流量進行整形,將流量控制在系統的能力范圍內,增強應用可用性。
通過運行指標控制
1.基于QPS。備注:使用RuleConstant.FLOW_GRADE_QPS策略
2.線程數。備注:使用RuleConstant.FLOW_GRADE_THREAD策略
通過資源的調用關系控制
1.根據調用來源限流
分為不區分調用來源、針對特定的調用者、針對除特定應用以外的調用者三種類型
備注:通過AbstractRule.setLimitApp來實現
2.關聯限流
通過控制當前資源關聯流量實現。
備注:使用RuleConstant.STRATEGY_RELATE和FlowRule.ref_identity策略
3.鏈路限流
在調用鏈路中,通過只根據某個入口的統計信息對資源限流量。
備注:使用RuleConstant.CHAIN和FlowRule.ref_identity策略
流量控制結果
快速失敗:流量超過閥值則快速失敗FlowException或者返回mock數據。
預熱模式:通過的流量緩慢增加,經過設置的預熱時間以后,到達系統處理請求速率的設定值。默認會從設置的QPS閾值的1/3開始慢慢往上增加至QPS設置值。
備注:使用RuleConstant.CONTROL_BEHAVIOR_WARM_UP_RATE_LIMITER策略。
排隊等待:嚴格控制請求通過的間隔時間,請求勻速通過。需設置具體的超時時間,當計算的等待時間超過超時時間時請求就會被拒絕。
備注:通過CONTROL_BEHAVIOR_RATE_LIMITER來實現
熔斷降級會在調用鏈路中某個資源出現不穩定狀態時(例如調用超時或異常比例升高),對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯錯誤。當資源被降級后,在接下來的降級時間窗口之內,對該資源的調用都自動熔斷(默認行為是拋出 DegradeException)。
熔斷降級支持的策略:
RT模式:資源的平均響應時間都超過閾值(秒級平均RT,以ms為單位),資源調用會被熔斷。在接下的降級時間窗口(在降級規則中配置,以s為單位)之內,對這個方法的調用都會自動返回(拋出 DegradeException)。
備注:使用RuleConstant.DEGRADE_GRADE_RT策略
異常比例模式:當資源的每秒異常數占通過量的比值超過閾值之后,資源進入降級狀態,即在接下的降級時間窗口(在降級規則中配置,以s為單位)之內,對這個方法的調用都會自動地返回。異常比率的閾值范圍是[0.0, 1.0],代表0%-100%。
備注:使用RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO策略
分鐘級異常數模式:當資源最近1分鐘的異常數目超過閾值之后會進行熔斷。
備注:使用RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT策略
通常對弱依賴進行熔斷,對強依賴進行隔離降級。
弱依賴:若依賴的第三方應用出錯不會影響而整體流程,則稱之為弱依賴。
強依賴:若依賴的第三方應用或組件,或者應用自身的內部方法出錯會影響而整體流程,則稱之為強依賴。
熱點即經常訪問的數據。很多時候我們希望統計某個熱點數據中訪問頻次最高的Top K數據,并對其訪問進行限制。比如:
商品ID為參數,統計一段時間內最常購買的商品ID并進行限制
用戶ID為參數,針對一段時間內頻繁訪問的用戶ID進行限制
備注:使用ParamFlowRule.setParamFlowItemList和ParamFlowRuleManager.loadRules
實際情況下流量到每臺機器可能會不均勻,僅靠單機維度去限制的話會無法精確地限制總體流量。通過精確地控制整個集群的調用總量,結合單機限流,實現集群整體防護。
集群流控中共有兩種身份:
Token Client:集群流控客戶端,用于向所屬 Token Server 通信請求 token。集群限流服務端會返回給客戶端結果,決定是否限流。
Token Server:即集群流控服務端,處理來自 Token Client 的請求,根據配置的集群規則判斷是否應該發放 token(是否允許通過)。
備注:通過ClusterTokenServer和ClusterTokenClient實現
從Load、總體平均RT、入口QPS和線程數幾個維度進行監控,平衡系統負載與入口流量,提高整體穩定性。
系統規則支持四種閾值類型:
Load(僅對 Linux/Unix-like機器生效):當系統 load1 超過閾值,且系統當前的并發線程數超過預計的系統容量時才會觸發系統保護。
備注:通過SystemRule.highestSystemLoad實現
RT:當單臺機器上所有入口流量的平均RT達到閾值即觸發系統保護,單位是毫秒。
備注:通過SystemRule.avgRt實現
線程數:當單臺機器上所有入口流量的并發線程數達到閾值即觸發系統保護。
備注:通過SystemRule.maxThread實現
入口QPS:當單臺機器上所有入口流量的QPS達到閾值即觸發系統保護。
備注:通過SystemRule.qps實現
看完了這篇文章,相信你對“Sentinel服務治理知識點有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。