欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

概述

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

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

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

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

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

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

綜上可知:

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

熔斷(降級(jí))策略

慢調(diào)用比例

概念

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

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

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

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

并且慢調(diào)用的比例大于閾值,則接下來的熔斷時(shí)長(zhǎng)內(nèi)請(qǐng)求會(huì)自動(dòng)被熔斷。

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

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

在這里插入圖片描述

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

若需要變更此上限可以通過啟動(dòng)配置項(xiàng)-Dcsp.sentinel.statistic.max.rt=xxx來配置

測(cè)試

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

如下所示

在這里插入圖片描述

然后我們?cè)跒g覽器訪問http://localhost:8990/test/hello,連續(xù)快速刷新該請(qǐng)求,可以看到服務(wù)被熔斷。30s后自動(dòng)恢復(fù)

在這里插入圖片描述

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

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

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

那么會(huì)熔斷該服務(wù),熔斷時(shí)間為設(shè)置的熔斷時(shí)長(zhǎng)

異常比例

概念

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

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

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

對(duì)這個(gè)方法的調(diào)用都會(huì)自動(dòng)地返回。

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

在這里插入圖片描述

測(cè)試

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

只是比慢調(diào)用比例少了一個(gè)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!";
}

然后我們?cè)跒g覽器訪問http://localhost:8990/test/hello?id=-1,連續(xù)快速刷新該請(qǐng)求,

當(dāng)請(qǐng)求數(shù)大于5個(gè)且異常比例閾值大于0.1時(shí)就會(huì)自動(dòng)熔斷

在這里插入圖片描述

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

異常數(shù)

概念

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

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

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

在這里插入圖片描述

測(cè)試

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

如圖所示:

在這里插入圖片描述

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

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

如下圖所示:

在這里插入圖片描述

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

相關(guān)文章

  • java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程

    java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程

    剛開始學(xué)JAVA GUI,就練手寫了一個(gè)小時(shí)候經(jīng)常在諾基亞上玩的一個(gè)小游戲__貪吃蛇.做的比較簡(jiǎn)單,但還是可以玩的.感興趣的朋友快來看看吧
    2021-11-11
  • java實(shí)現(xiàn)的計(jì)算器功能示例【基于swing組件】

    java實(shí)現(xiàn)的計(jì)算器功能示例【基于swing組件】

    這篇文章主要介紹了java實(shí)現(xiàn)的計(jì)算器功能,結(jié)合實(shí)例形式分析了java基于swing組件實(shí)現(xiàn)計(jì)算器功能相關(guān)運(yùn)算操作技巧,需要的朋友可以參考下
    2017-12-12
  • Java實(shí)現(xiàn)TCP/IP協(xié)議的收發(fā)數(shù)據(jù)(服務(wù)端)代碼實(shí)例

    Java實(shí)現(xiàn)TCP/IP協(xié)議的收發(fā)數(shù)據(jù)(服務(wù)端)代碼實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)TCP/IP協(xié)議的收發(fā)數(shù)據(jù)(服務(wù)端)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java基于dom4j包實(shí)現(xiàn)對(duì)XML解析的方法

    java基于dom4j包實(shí)現(xiàn)對(duì)XML解析的方法

    這篇文章主要介紹了java基于dom4j包實(shí)現(xiàn)對(duì)XML解析的方法,結(jié)合實(shí)例形式分析了java針對(duì)xml格式數(shù)據(jù)的相關(guān)解析操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • SpringBoot中的Aop用法示例詳解

    SpringBoot中的Aop用法示例詳解

    這篇文章主要介紹了SpringBoot中的Aop用法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Java基礎(chǔ)-Java基本數(shù)據(jù)類型

    Java基礎(chǔ)-Java基本數(shù)據(jù)類型

    這篇文章主要介紹了Java基礎(chǔ)-Java基本數(shù)據(jù)類型,變量就是申請(qǐng)內(nèi)存來存儲(chǔ)值。也就是說,當(dāng)創(chuàng)建變量的時(shí)候,需要在內(nèi)存中申請(qǐng)空間,下面我們就來對(duì)Java基本數(shù)據(jù)類型作簡(jiǎn)單的介紹,需要的朋友可以參考一下
    2022-01-01
  • java CompletableFuture實(shí)現(xiàn)異步編排詳解

    java CompletableFuture實(shí)現(xiàn)異步編排詳解

    這篇文章主要為大家介紹了java CompletableFuture實(shí)現(xiàn)異步編排詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • IDEA 2020.1打開時(shí)閃退的問題及解決方法(完美解決方法)

    IDEA 2020.1打開時(shí)閃退的問題及解決方法(完美解決方法)

    這篇文章主要介紹了IDEA 2020.1打開時(shí)閃退問題及解決方法,本文給大家分享我的處理方案,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring MVC 使用支付寶接口完成在線支付的示例代碼

    Spring MVC 使用支付寶接口完成在線支付的示例代碼

    本篇文章主要介紹了Spring MVC 使用支付寶接口完成在線支付的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • 分享一些Java的常用工具

    分享一些Java的常用工具

    今天給大家?guī)淼氖顷P(guān)于Java的一些常用的工具,文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06

最新評(píng)論