SpringCloud降級(jí)規(guī)則使用介紹
官網(wǎng)
https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7
基本介紹
RT(平均響應(yīng)時(shí)間,秒級(jí))
平均響應(yīng)時(shí)間 超出閾值 且 在時(shí)間窗口內(nèi)通過的請(qǐng)求>=5,兩個(gè)條件同時(shí)滿足后觸發(fā)降級(jí)
窗口期過后關(guān)閉斷路器
RT最大4900(更大的需要通過-Dcsp.sentinel.statistic.max.rt=XXXX才能生效)
異常比列(秒級(jí))
QPS >= 5 且異常比例(秒級(jí)統(tǒng)計(jì))超過閾值時(shí),觸發(fā)降級(jí);時(shí)間窗口結(jié)束后,關(guān)閉降級(jí)
異常數(shù)(分鐘級(jí))
異常數(shù)(分鐘統(tǒng)計(jì))超過閾值時(shí),觸發(fā)降級(jí);時(shí)間窗口結(jié)束后,關(guān)閉降級(jí)
Sentinel 熔斷降級(jí)會(huì)在調(diào)用鏈路中某個(gè)資源出現(xiàn)不穩(wěn)定狀態(tài)時(shí)(例如調(diào)用超時(shí)或異常比例升高),對(duì)這個(gè)資源的調(diào)用進(jìn)行限制,讓請(qǐng)求快速失敗,避免影響到其它的資源而導(dǎo)致級(jí)聯(lián)錯(cuò)誤。
當(dāng)資源被降級(jí)后,在接下來的降級(jí)時(shí)間窗口之內(nèi),對(duì)該資源的調(diào)用都自動(dòng)熔斷(默認(rèn)行為是拋出 DegradeException)。
Sentinel的斷路器是沒有半開狀態(tài)的(1.7版本)
降級(jí)策略實(shí)戰(zhàn)
RT
@GetMapping("/testD") public String testD() { //暫停幾秒鐘線程 try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } log.info("testD 測(cè)試RT"); return "------testD"; }
測(cè)試1
按照上述配置,
永遠(yuǎn)一秒鐘打進(jìn)來10個(gè)線程(大于5個(gè)了)調(diào)用testD,我們希望200毫秒處理完本次任務(wù), 如果超過200毫秒還沒處理完,在未來1秒鐘的時(shí)間窗口內(nèi),斷路器打開(保險(xiǎn)絲跳閘)微服務(wù)不可用,保險(xiǎn)絲跳閘斷電了 后續(xù)我停止jmeter,沒有這么大的訪問量了,斷路器關(guān)閉(保險(xiǎn)絲恢復(fù)),微服務(wù)恢復(fù)OK
異常比例
是什么
@GetMapping("/testD") public String testD() { log.info("testD 測(cè)試RT"); int age = 10/0; return "------testD"; }
測(cè)試2
按照上述配置,
單獨(dú)訪問一次,必然來一次報(bào)錯(cuò)一次(int age = 10/0),調(diào)一次錯(cuò)一次;
開啟jmeter后,直接高并發(fā)發(fā)送請(qǐng)求,多次調(diào)用達(dá)到我們的配置條件了。
斷路器開啟(保險(xiǎn)絲跳閘),微服務(wù)不可用了,不再報(bào)錯(cuò)error而是服務(wù)降級(jí)了。
異常數(shù)
時(shí)間窗口一定要大于等于60秒。
5次異常后,還沒到一分鐘但已經(jīng)熔斷了,如果時(shí)間窗口只有比如10s,熔斷關(guān)閉后還是在當(dāng)前異常計(jì)數(shù)分鐘內(nèi),所以會(huì)再次熔斷,只有超過60s,才會(huì)開始新的異常計(jì)數(shù)周期
@GetMapping("/testE") public String testE() { log.info("testE 測(cè)試異常比例"); int age = 10/0; return "------testE 測(cè)試異常比例"; }
測(cè)試3
http://localhost:8401/testE,第一次訪問絕對(duì)報(bào)錯(cuò),因?yàn)槌龜?shù)不能為零,我們看到error窗口,但是達(dá)到5次報(bào)錯(cuò)后,進(jìn)入熔斷后降級(jí)。
到此這篇關(guān)于SpringCloud降級(jí)規(guī)則使用介紹的文章就介紹到這了,更多相關(guān)SpringCloud降級(jí)規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloud Feign隔離與降級(jí)詳細(xì)分析
- SpringCloud hystrix服務(wù)降級(jí)學(xué)習(xí)筆記
- SpringCloud?hystrix斷路器與局部降級(jí)全面介紹
- SpringCloud hystrix服務(wù)降級(jí)概念介紹
- SpringCloud-Alibaba-Sentinel服務(wù)降級(jí),熱點(diǎn)限流,服務(wù)熔斷
- springcloud 服務(wù)降級(jí)的實(shí)現(xiàn)方法
- 詳解springcloud 基于feign的服務(wù)接口的統(tǒng)一hystrix降級(jí)處理
- springcloud使用Hystrix進(jìn)行微服務(wù)降級(jí)管理
- SpringCloud災(zāi)難性雪崩效應(yīng)處理方法之降級(jí)實(shí)現(xiàn)流程詳解
相關(guān)文章
Spring Cloud Feign實(shí)現(xiàn)動(dòng)態(tài)URL
本文主要介紹了Spring Cloud Feign實(shí)現(xiàn)動(dòng)態(tài)URL,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02java 使用URLDecoder和URLEncoder對(duì)中文進(jìn)行處理
這篇文章主要介紹了java 使用URLDecoder和URLEncoder對(duì)中文進(jìn)行處理的相關(guān)資料,需要的朋友可以參考下2017-02-02詳解Java8中的lambda表達(dá)式、::符號(hào)和Optional類
這篇文章主要介紹了Java8中的lambda表達(dá)式、::符號(hào)和Optional類,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04一篇超詳細(xì)的Spring Boot對(duì)jdbc支持的文章
JdbcTemplate 是在JDBC API基礎(chǔ)上提供了更抽象的封裝,并提供了基于方法注解的事務(wù)管理能力。 通過使用SpringBoot自動(dòng)配置功能并代替我們自動(dòng)配置beans,下面給大家介紹spring boot中使用JdbcTemplate相關(guān)知識(shí),一起看看吧2021-07-07Apache?Hudi異步Clustering部署操作的掌握
這篇文章主要介紹了Apache?Hudi異步Clustering部署操作的掌握,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-0323種設(shè)計(jì)模式(12)java模版方法模式
這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java模版方法模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11SpringBoot用實(shí)體接收Get請(qǐng)求傳遞過來的多個(gè)參數(shù)的兩種方式
本文主要介紹SpringBoot用實(shí)體接收Get請(qǐng)求傳遞過來的多個(gè)參數(shù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04springboot使用log4j2異步日志提升性能的實(shí)現(xiàn)方式
這篇文章主要介紹了springboot使用log4j2異步日志提升性能,異步日志實(shí)現(xiàn)方式:將日志存入一個(gè)單獨(dú)的隊(duì)列中,有一個(gè)單獨(dú)的線程從隊(duì)列中獲取日志并寫入磁盤文件,需要的朋友可以參考下2022-05-05