SpringCloud降級規(guī)則使用介紹
官網(wǎng)
https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7
基本介紹
RT(平均響應(yīng)時間,秒級)
平均響應(yīng)時間 超出閾值 且 在時間窗口內(nèi)通過的請求>=5,兩個條件同時滿足后觸發(fā)降級
窗口期過后關(guān)閉斷路器
RT最大4900(更大的需要通過-Dcsp.sentinel.statistic.max.rt=XXXX才能生效)
異常比列(秒級)
QPS >= 5 且異常比例(秒級統(tǒng)計(jì))超過閾值時,觸發(fā)降級;時間窗口結(jié)束后,關(guān)閉降級
異常數(shù)(分鐘級)
異常數(shù)(分鐘統(tǒng)計(jì))超過閾值時,觸發(fā)降級;時間窗口結(jié)束后,關(guān)閉降級

Sentinel 熔斷降級會在調(diào)用鏈路中某個資源出現(xiàn)不穩(wěn)定狀態(tài)時(例如調(diào)用超時或異常比例升高),對這個資源的調(diào)用進(jìn)行限制,讓請求快速失敗,避免影響到其它的資源而導(dǎo)致級聯(lián)錯誤。
當(dāng)資源被降級后,在接下來的降級時間窗口之內(nèi),對該資源的調(diào)用都自動熔斷(默認(rèn)行為是拋出 DegradeException)。
Sentinel的斷路器是沒有半開狀態(tài)的(1.7版本)
降級策略實(shí)戰(zhàn)
RT


@GetMapping("/testD")
public String testD()
{
//暫停幾秒鐘線程
try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); }
log.info("testD 測試RT");
return "------testD";
}測試1


按照上述配置,
永遠(yuǎn)一秒鐘打進(jìn)來10個線程(大于5個了)調(diào)用testD,我們希望200毫秒處理完本次任務(wù), 如果超過200毫秒還沒處理完,在未來1秒鐘的時間窗口內(nèi),斷路器打開(保險絲跳閘)微服務(wù)不可用,保險絲跳閘斷電了 后續(xù)我停止jmeter,沒有這么大的訪問量了,斷路器關(guān)閉(保險絲恢復(fù)),微服務(wù)恢復(fù)OK
異常比例
是什么


@GetMapping("/testD")
public String testD()
{
log.info("testD 測試RT");
int age = 10/0;
return "------testD";
}測試2


按照上述配置,
單獨(dú)訪問一次,必然來一次報錯一次(int age = 10/0),調(diào)一次錯一次;
開啟jmeter后,直接高并發(fā)發(fā)送請求,多次調(diào)用達(dá)到我們的配置條件了。
斷路器開啟(保險絲跳閘),微服務(wù)不可用了,不再報錯error而是服務(wù)降級了。
異常數(shù)

時間窗口一定要大于等于60秒。
5次異常后,還沒到一分鐘但已經(jīng)熔斷了,如果時間窗口只有比如10s,熔斷關(guān)閉后還是在當(dāng)前異常計(jì)數(shù)分鐘內(nèi),所以會再次熔斷,只有超過60s,才會開始新的異常計(jì)數(shù)周期

@GetMapping("/testE")
public String testE()
{
log.info("testE 測試異常比例");
int age = 10/0;
return "------testE 測試異常比例";
}測試3

http://localhost:8401/testE,第一次訪問絕對報錯,因?yàn)槌龜?shù)不能為零,我們看到error窗口,但是達(dá)到5次報錯后,進(jìn)入熔斷后降級。

到此這篇關(guān)于SpringCloud降級規(guī)則使用介紹的文章就介紹到這了,更多相關(guān)SpringCloud降級規(guī)則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloud Feign隔離與降級詳細(xì)分析
- SpringCloud hystrix服務(wù)降級學(xué)習(xí)筆記
- SpringCloud?hystrix斷路器與局部降級全面介紹
- SpringCloud hystrix服務(wù)降級概念介紹
- SpringCloud-Alibaba-Sentinel服務(wù)降級,熱點(diǎn)限流,服務(wù)熔斷
- springcloud 服務(wù)降級的實(shí)現(xiàn)方法
- 詳解springcloud 基于feign的服務(wù)接口的統(tǒng)一hystrix降級處理
- springcloud使用Hystrix進(jìn)行微服務(wù)降級管理
- SpringCloud災(zāi)難性雪崩效應(yīng)處理方法之降級實(shí)現(xiàn)流程詳解
相關(guān)文章
使用JSONObject.toJSONString 過濾掉值為空的key
這篇文章主要介紹了使用JSONObject.toJSONString 過濾掉值為空的key,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
一文帶你學(xué)會Java中ScheduledThreadPoolExecutor使用
ScheduledThreadPoolExecutor是Java并發(fā)包中的一個類,同時也是?ThreadPoolExecutor的一個子類,本文主要為大家介紹一下ScheduledThreadPoolExecutor使用,需要的可以參考下2024-12-12
Java實(shí)現(xiàn)房屋出租系統(tǒng)詳解
這篇文章主要介紹了實(shí)現(xiàn)Java房屋出租系統(tǒng)的實(shí)現(xiàn)過程,文章條理清晰,在實(shí)現(xiàn)過程中加深了對相關(guān)概念的理解,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
JSR303校驗(yàn)注解和自定義校驗(yàn)注解的使用
這篇文章主要介紹了JSR303校驗(yàn)注解和自定義校驗(yàn)注解的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
springboot2.x使用Jsoup防XSS攻擊的實(shí)現(xiàn)
這篇文章主要介紹了springboot2.x使用Jsoup防XSS攻擊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑
這篇文章主要為大家詳細(xì)介紹了java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
java中synchronized關(guān)鍵字的3種寫法實(shí)例
synchronized是Java中的關(guān)鍵字,是一種同步鎖,下面這篇文章主要給大家介紹了關(guān)于java中synchronized關(guān)鍵字的3種寫法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11
SSM項(xiàng)目使用攔截器實(shí)現(xiàn)登錄驗(yàn)證功能
這篇文章主要介紹了在SSM項(xiàng)目中如何使用攔截器,實(shí)現(xiàn)登錄驗(yàn)證功能。文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的小伙伴可以了解一下2022-01-01

