Resilience4J通过yml设置circuitBreaker的方法

 更新时间:2022年10月21日 08:59:37   作者:BitBean  
Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计,这篇文章主要介绍了Resilience4J通过yml设置circuitBreaker的方法,需要的朋友可以参考下

介绍

Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。
springcloud2020升级以后Hystrix被官方移除,Resilience4目前是官方推荐的熔断限流方案。

核心组件

相关问题

按照网上很多文章进行熔断器配置,发现并不能读取配置中的参数,走的还是Resilience4J中CircuitBreakerConfig默认的参数。通过测试实现了一种能读取yml中断路器配置的方案

resilience4j.circuitbreaker:
  configs: #通用配置
    default: # 断路器系统默认配置
      #失败率,错误率达到或高于该值则进入open状态
      failureRateThreshold: 20
      #慢调用阀值,请求执行的时间大于该值时会标记为慢调用
      slowCallDurationThreshold: 60s
      #慢调用熔断阀值,当慢调用率达到或高于该值时,进入open状态
      slowCallRateThreshold: 90
      #状态滚动收集器大小,close状态时收集多少请求状态,用于计算失败率。
      slidingWindowSize: 90
      #状态收集器类型
      #COUNT_BASED:根据数量计算,slidingWindowSize为次数
      #TIME_BASED:根据时间计算,slidingWindowSize为秒数
      slidingWindowType: COUNT_BASED
      #计算错误率的最小请求数,不足最小调用次数不会触发任何变化。
      minimumNumberOfCalls: 10
      #是否自动进入halfOpen状态,默认false-一定时间后进入halfopen,ture-需要通过接口执行。
      automaticTransitionFromOpenToHalfOpenEnabled: false
      #进入halfOpen状态时,可以被调用次数,就算这些请求的失败率,低于设置的失败率变为close状态,否则变为open。
      permittedNumberOfCallsInHalfOpenState: 10
      #open状态变为half状态需要等待的时间,即熔断多久后开始尝试访问被熔断的服务。
      waitDurationInOpenState: 60s
      #事件缓冲区大小??
      eventConsumerBufferSize: 10
      #被计为失败的异常集合,默认情况下所有异常都为失败。
      recordExceptions:
        - java.lang.Exception
      #不会被计为失败的异常集合,优先级高于recordExceptions。
      ignoreExceptions:
        - java.lang.IllegalStateException
  instances: #熔断器类型
    aCustomizer: #使用默认配置
      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

到此这篇关于Resilience4J通过yml设置circuitBreaker的文章就介绍到这了,更多相关Resilience4J设置circuitBreaker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入了解Java中循环结构的使用

    深入了解Java中循环结构的使用

    Java中有三种主要的循环结构:while 循环、do…while 循环和for 循环。本文将来和大家一起讲讲Java中这三个循环的使用,需要的可以参考一下
    2022-08-08
  • 浅谈Hibernate中的三种数据状态(临时、持久、游离)

    浅谈Hibernate中的三种数据状态(临时、持久、游离)

    下面小编就为大家带来一篇浅谈Hibernate中的三种数据状态(临时、持久、游离)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java加载本地库的方法之System.load与System.loadLibrary

    Java加载本地库的方法之System.load与System.loadLibrary

    最近在做的工作要用到本地方法,所以下面这篇文章主要介绍了Java加载本地库的方法之System.load与System.loadLibrary的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • Java 8 Stream流强大的原理

    Java 8 Stream流强大的原理

    这篇文章主要介绍了Java 8 Stream流强大的原理,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文会对Stream的实现原理进行剖析,具有一定的参考价值,需要的朋友可以参考一下
    2021-12-12
  • IDEA中Mybatis的MGB使用逆向工程配置的详细教程

    IDEA中Mybatis的MGB使用逆向工程配置的详细教程

    这篇文章主要介绍了IDEA中Mybatis的MGB使用逆向工程配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 使用@Slf4j注解,log.info()无法使用问题

    使用@Slf4j注解,log.info()无法使用问题

    在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题
    2024-12-12
  • IDEA如何修改maven的JVM启动内存参数

    IDEA如何修改maven的JVM启动内存参数

    这篇文章主要介绍了IDEA如何修改maven的JVM启动内存参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • Java自定义协议报文封装 添加Crc32校验的实例

    Java自定义协议报文封装 添加Crc32校验的实例

    下面小编就为大家分享一篇Java自定义协议报文封装 添加Crc32校验的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android 判断真机和模拟器的方法

    Android 判断真机和模拟器的方法

    这篇文章主要介绍了 Android 判断真机和模拟器的方法的相关资料,需要的朋友可以参考下
    2017-02-02
  • SpringSecurity 表单登录的实现

    SpringSecurity 表单登录的实现

    本文主要介绍了SpringSecurity 表单登录的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论