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

Resilience4J通過yml設(shè)置circuitBreaker的方法

 更新時間:2022年10月21日 08:59:37   作者:BitBean  
Resilience4j是一個輕量級、易于使用的容錯庫,其靈感來自Netflix Hystrix,但專為Java 8和函數(shù)式編程設(shè)計,這篇文章主要介紹了Resilience4J通過yml設(shè)置circuitBreaker的方法,需要的朋友可以參考下

介紹

Resilience4j是一個輕量級、易于使用的容錯庫,其靈感來自Netflix Hystrix,但專為Java 8和函數(shù)式編程設(shè)計。
springcloud2020升級以后Hystrix被官方移除,Resilience4目前是官方推薦的熔斷限流方案。

核心組件

相關(guān)問題

按照網(wǎng)上很多文章進(jìn)行熔斷器配置,發(fā)現(xiàn)并不能讀取配置中的參數(shù),走的還是Resilience4J中CircuitBreakerConfig默認(rèn)的參數(shù)。通過測試實現(xiàn)了一種能讀取yml中斷路器配置的方案

resilience4j.circuitbreaker:
  configs: #通用配置
    default: # 斷路器系統(tǒng)默認(rèn)配置
      #失敗率,錯誤率達(dá)到或高于該值則進(jìn)入open狀態(tài)
      failureRateThreshold: 20
      #慢調(diào)用閥值,請求執(zhí)行的時間大于該值時會標(biāo)記為慢調(diào)用
      slowCallDurationThreshold: 60s
      #慢調(diào)用熔斷閥值,當(dāng)慢調(diào)用率達(dá)到或高于該值時,進(jìn)入open狀態(tài)
      slowCallRateThreshold: 90
      #狀態(tài)滾動收集器大小,close狀態(tài)時收集多少請求狀態(tài),用于計算失敗率。
      slidingWindowSize: 90
      #狀態(tài)收集器類型
      #COUNT_BASED:根據(jù)數(shù)量計算,slidingWindowSize為次數(shù)
      #TIME_BASED:根據(jù)時間計算,slidingWindowSize為秒數(shù)
      slidingWindowType: COUNT_BASED
      #計算錯誤率的最小請求數(shù),不足最小調(diào)用次數(shù)不會觸發(fā)任何變化。
      minimumNumberOfCalls: 10
      #是否自動進(jìn)入halfOpen狀態(tài),默認(rèn)false-一定時間后進(jìn)入halfopen,ture-需要通過接口執(zhí)行。
      automaticTransitionFromOpenToHalfOpenEnabled: false
      #進(jìn)入halfOpen狀態(tài)時,可以被調(diào)用次數(shù),就算這些請求的失敗率,低于設(shè)置的失敗率變?yōu)閏lose狀態(tài),否則變?yōu)閛pen。
      permittedNumberOfCallsInHalfOpenState: 10
      #open狀態(tài)變?yōu)閔alf狀態(tài)需要等待的時間,即熔斷多久后開始嘗試訪問被熔斷的服務(wù)。
      waitDurationInOpenState: 60s
      #事件緩沖區(qū)大????
      eventConsumerBufferSize: 10
      #被計為失敗的異常集合,默認(rèn)情況下所有異常都為失敗。
      recordExceptions:
        - java.lang.Exception
      #不會被計為失敗的異常集合,優(yōu)先級高于recordExceptions。
      ignoreExceptions:
        - java.lang.IllegalStateException
  instances: #熔斷器類型
    aCustomizer: #使用默認(rèn)配置
      baseConfig: default
    cacheCustomizer: #自定義配置
      failureRateThreshold: 10
   @Bean
    @Primary
    public Resilience4JCircuitBreakerFactory resilience4jCircuitBreakerFactory() {
        Resilience4JCircuitBreakerFactory factory = new Resilience4JCircuitBreakerFactory();
        factory.configureDefault(
                id -> new Resilience4JConfigBuilder(id)
                        .circuitBreakerConfig(
                                circuitBreakerRegistry.circuitBreaker("aCustomizer").getCircuitBreakerConfig()
                        )
                        .timeLimiterConfig(
                                new TimeLimiterConfig.Builder()
                                        .timeoutDuration(Duration.ofSeconds(4))
                                        .cancelRunningFuture(true)
                                        .build()
                        )
                        .build());
        System.out.println(factory);
        return factory;
    }

源碼

https://gitee.com/gustav0/resilience4-jdemo

到此這篇關(guān)于Resilience4J通過yml設(shè)置circuitBreaker的文章就介紹到這了,更多相關(guān)Resilience4J設(shè)置circuitBreaker內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評論

定日县| 武功县| 肥乡县| 铜川市| 红河县| 科尔| 敦煌市| 东乡族自治县| 鹿泉市| 若羌县| 营口市| 两当县| 隆回县| 宿松县| 宁波市| 曲阜市| 商城县| 招远市| 太保市| 尉犁县| 慈溪市| 阆中市| 法库县| 遂宁市| 渑池县| 松溪县| 乌拉特后旗| 砀山县| 泸定县| 承德市| 泰和县| 拉萨市| 阳山县| 卓尼县| 出国| 古田县| 永修县| 永兴县| 涿鹿县| 乌兰察布市| 江陵县|