最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Sentinel熔斷規(guī)則原理示例詳解分析

 更新時間:2021年09月01日 11:21:00   作者:潮汐先生  
這篇文章主要介紹了Sentinel熔斷規(guī)則,采用了示例代碼的方式對Sentinel熔斷規(guī)則進(jìn)行了詳細(xì)的分析,以便廣大讀者朋友們更易理解,有需要的朋友可以參考下

概述

除了流量控制以外,對調(diào)用鏈路中不穩(wěn)定的資源進(jìn)行熔斷降級也是保障高可用的重要措施之一。

由于調(diào)用關(guān)系的復(fù)雜性,如果調(diào)用鏈路中的某個資源不穩(wěn)定,最終會導(dǎo)致請求發(fā)生堆積。

Sentinel 熔斷降級會在調(diào)用鏈路中某個資源出現(xiàn)不穩(wěn)定狀態(tài)時(例如調(diào)用超時、異常比例升高、異常數(shù)堆積)

對這個資源的調(diào)用進(jìn)行限制,讓請求快速失敗從而避免影響到其它的資源而導(dǎo)致級聯(lián)錯誤。

當(dāng)資源被降級后,在接下來的降級時間窗口之內(nèi)會對該資源的調(diào)用自動熔斷

(默認(rèn)行為是拋出 DegradeException)。

綜上可知:

  • 熔斷是用來避免服務(wù)架構(gòu)中的雪崩的發(fā)生
  • 當(dāng)監(jiān)控到鏈路中的異常(響應(yīng)時間超時、異常比例升高、異常數(shù)堆積)達(dá)到閾值自動觸發(fā)熔斷
  • 在降級時間窗口之內(nèi)會對該資源的調(diào)用自動熔斷

熔斷(降級)策略

慢調(diào)用比例

概念

慢調(diào)用比例 (SLOW_REQUEST_RATIO):

選擇以慢調(diào)用比例作為閾值,需要設(shè)置允許的慢調(diào)用 RT(即最大的響應(yīng)時間),

請求的響應(yīng)時間大于該值則統(tǒng)計為慢調(diào)用。

當(dāng)單位統(tǒng)計時長(statIntervalMs)內(nèi)請求數(shù)目大于設(shè)置的最小請求數(shù)目,

并且慢調(diào)用的比例大于閾值,則接下來的熔斷時長內(nèi)請求會自動被熔斷。

經(jīng)過熔斷時長后熔斷器會進(jìn)入探測恢復(fù)狀態(tài)(HALF-OPEN 狀態(tài)),

若接下來的一個請求響應(yīng)時間小于設(shè)置的慢調(diào)用 RT 則結(jié)束熔斷,若大于設(shè)置的慢調(diào)用 RT 則會再次被熔斷。

在這里插入圖片描述

注意Sentinel默認(rèn)統(tǒng)計的RT上限是4900ms,超出此閾值的都會算作4900ms,

若需要變更此上限可以通過啟動配置項-Dcsp.sentinel.statistic.max.rt=xxx來配置

測試

我們在Sentinel DashBoard界面點(diǎn)擊熔斷規(guī)則,然后按照下圖配置新增慢調(diào)用比例的熔斷規(guī)則。

如下所示

在這里插入圖片描述

然后我們在瀏覽器訪問http://localhost:8990/test/hello,連續(xù)快速刷新該請求,可以看到服務(wù)被熔斷。30s后自動恢復(fù)

在這里插入圖片描述

我們本次使用的Sentinel版本是1.8.2,在1.8之前的版本慢調(diào)用比例就是RT,

慢調(diào)用相較于之前的RT加入了比例閾值,相當(dāng)于多加了一個條件。

慢調(diào)用比例的熔斷時機(jī):在統(tǒng)計時長內(nèi),請求數(shù)大于5個,如若大于指定比例閾值的請求數(shù)的響應(yīng)時間都大于最大RT,

那么會熔斷該服務(wù),熔斷時間為設(shè)置的熔斷時長

異常比例

概念

異常比例 (DEGRADE_GRADE_EXCEPTION_RATIO):當(dāng)資源的每秒請求量 >= N(可配置),

并且每秒異??倲?shù)占通過量的比值超過閾值(DegradeRule 中的 count)之后,

資源進(jìn)入降級狀態(tài),即在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 為單位)之內(nèi),

對這個方法的調(diào)用都會自動地返回。

異常比率的閾值范圍是 [0.0, 1.0],代表 0% - 100%。

在這里插入圖片描述

測試

相較于慢調(diào)用比例,異常比例就簡單了,通過修改或者新增熔斷規(guī)則我們可以發(fā)現(xiàn)當(dāng)我們選擇異常比例時,

只是比慢調(diào)用比例少了一個RT。

我們按照下圖所示配置異常比例的熔斷規(guī)則,如下所示:

在這里插入圖片描述

為了演示異常我們修改下TestController.java中的/test/hello方法。

如下所示:

@RequestMapping("/hello")
public String sayHello(Integer id){
  log.info("Hello, Sentinel!");
  if(id < 0){
    throw new RuntimeException();
  }
  return "Hello, Sentinel!";
}

然后我們在瀏覽器訪問http://localhost:8990/test/hello?id=-1,連續(xù)快速刷新該請求,

當(dāng)請求數(shù)大于5個且異常比例閾值大于0.1時就會自動熔斷

在這里插入圖片描述

這是一個拼手速的實驗,點(diǎn)擊速度慢的小伙伴可以把統(tǒng)計時長調(diào)長一些(默認(rèn)最大為4900ms)

異常數(shù)

概念

異常數(shù) (DEGRADE_GRADE_EXCEPTION_COUNT):當(dāng)資源近 1 分鐘的異常數(shù)目超過閾值之后會進(jìn)行熔斷。

注意由于統(tǒng)計時間窗口是分鐘級別的,若 timeWindow 小于 60s,

則結(jié)束熔斷狀態(tài)后仍可能再進(jìn)入熔斷狀態(tài)。

在這里插入圖片描述

測試

相比于前面兩個異常數(shù)就更簡單了,我們按下圖所示修改熔斷規(guī)則。

如圖所示:

在這里插入圖片描述

還是使用測試異常比例的demo進(jìn)行演示這個效果,我們在瀏覽器狂刷請求http://localhost:8990/test/hello?id=-1,

放異常數(shù)達(dá)到5個后就會自動熔斷該服務(wù)了。

如下圖所示:

在這里插入圖片描述

以上就是Sentinel熔斷規(guī)則原理示例詳解分析的詳細(xì)內(nèi)容,更多關(guān)于Sentinel熔斷規(guī)則的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中雙重檢查鎖(double checked locking)的正確實現(xiàn)

    Java中雙重檢查鎖(double checked locking)的正確實現(xiàn)

    雙重檢查鎖(Double-Check Locking),顧名思義,通過兩次檢查,并基于加鎖機(jī)制,實現(xiàn)某個功能,下面這篇文章主要給大家介紹了關(guān)于Java中雙重檢查鎖(double checked locking)的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java動態(tài)代理四種實現(xiàn)方式詳解

    Java動態(tài)代理四種實現(xiàn)方式詳解

    這篇文章主要介紹了Java四種動態(tài)代理實現(xiàn)方式,對于開始學(xué)習(xí)java動態(tài)代理或者要復(fù)習(xí)java動態(tài)代理的朋友來講很有參考價值,有感興趣的朋友可以參考一下
    2021-04-04
  • Spring Boot中捕獲異常錯誤信息并將其保存到數(shù)據(jù)庫中的操作方法

    Spring Boot中捕獲異常錯誤信息并將其保存到數(shù)據(jù)庫中的操作方法

    這篇文章主要介紹了Spring Boot中捕獲異常錯誤信息并將其保存到數(shù)據(jù)庫中的操作方法,通過實例代碼介紹了使用Spring Data JPA創(chuàng)建一個異常信息的存儲庫接口,以便將異常信息保存到數(shù)據(jù)庫,需要的朋友可以參考下
    2023-10-10
  • Java定時清理過期文件的實例代碼

    Java定時清理過期文件的實例代碼

    這篇文章主要介紹了Java定時清理過期文件的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-12-12
  • Java foreach循環(huán)是否可以修改數(shù)據(jù)的值問題解決方法

    Java foreach循環(huán)是否可以修改數(shù)據(jù)的值問題解決方法

    最近在做項目的時候,需要修改一個數(shù)組里面各個元素的值,foreach循環(huán)迭代數(shù)組元素時,不能改變數(shù)組元素的值,這篇文章給大家介紹Java foreach循環(huán)是否可以修改數(shù)據(jù)的值的問題及解決方法,感興趣的朋友一起看看吧
    2024-02-02
  • Idea中Springboot熱部署無效問題解決

    Idea中Springboot熱部署無效問題解決

    這篇文章主要介紹了Idea中Springboot熱部署無效問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 關(guān)于spring中不同包中類名相同報錯問題的總結(jié)

    關(guān)于spring中不同包中類名相同報錯問題的總結(jié)

    這篇文章主要介紹了關(guān)于spring中不同包中類名相同報錯問題的總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • protobuf簡介及使用流程

    protobuf簡介及使用流程

    本文介紹了Protocol Buffers(protobuf)的數(shù)據(jù)結(jié)構(gòu)序列化和反序列化框架,包括其特點(diǎn)、使用流程和快速上手,通過一個簡單的通訊錄示例,展示了如何創(chuàng)建.proto文件、添加注釋、編寫消息定義、編譯.proto文件以及進(jìn)行序列化和反序列化操作,感興趣的朋友一起看看吧
    2025-02-02
  • Java調(diào)用第三方接口示范的實現(xiàn)

    Java調(diào)用第三方接口示范的實現(xiàn)

    這篇文章主要介紹了Java調(diào)用第三方接口示范的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringQuartz集群支持JDBC存儲與分布式執(zhí)行的最佳實踐

    SpringQuartz集群支持JDBC存儲與分布式執(zhí)行的最佳實踐

    SpringQuartz集群通過JDBC存儲和分布式執(zhí)行機(jī)制,有效解決了單點(diǎn)故障和擴(kuò)展性問題,本文將詳細(xì)介紹SpringQuartz集群支持的實現(xiàn)原理、配置方法和最佳實踐,助力開發(fā)者構(gòu)建穩(wěn)定可靠的分布式調(diào)度系統(tǒng),感興趣的朋友一起看看吧
    2025-04-04

最新評論

霍邱县| 兖州市| 和政县| 额济纳旗| 阿克陶县| 冷水江市| 玛曲县| 喀喇| 教育| 中阳县| 银川市| 贡山| 洛扎县| 客服| 申扎县| 克山县| 南江县| 黑河市| 岳池县| 广西| 佳木斯市| 澄迈县| 洮南市| 龙山县| 三台县| 永胜县| 青冈县| 克什克腾旗| 枞阳县| 四会市| 湟源县| 拉孜县| 铜梁县| 通渭县| 德惠市| 讷河市| 东台市| 靖安县| 新化县| 忻城县| 三台县|