《深入浅出SpringCloud》SpringCloud Resilience4J 熔断器

Resilience4J是Spring Cloud G版本推荐的轻量级容错库,替代了Hystrix。本文介绍了Resilience4J的熔断器、限流、请求重试、限时和请求隔离等功能,通过实例展示了如何配置和使用这些功能,以实现系统的高可用性和容错性。
摘要由CSDN通过智能技术生成

Resilience4J 熔断器

Resilience4J是我们Spring Cloud G版本 推荐的容错方案,它是一个轻量级的容错库。它借鉴了Hystrix而设计,并且采用JDK8 这个函数式编程,为什么说它是轻量级的呢?因为它的库只使用 Vavr (以前称为 Javaslang ),它没有任何其他外部库依赖项。相比之下, Netflix Hystrix 对Archaius 具有编译依赖性,这导致了更多的外部库依赖,例如 Guava 和 Apache Commons 。而如果使用Resilience4j,你无需引用全部依赖,可以根据自己需要的功能引用相关的模块即可。

简介

Resilience4j 主要有以下功能:

  • CircuitBreaker(熔断器)
  • RateLimiter(限流)
  • Retry(请求重试)
  • 限时
  • 缓存
  • 信号量的隔离

常用熔断器比较

在这里插入图片描述

简单使用

熔断器

  • pom.xml 添加依赖
        <dependency>
            <groupId>io.github.resilience4j</groupId>
            <artifactId>resilience4j-circuitbreaker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
  • 创建测试用例测试短路器的功能
 @Test
    public void testCircuitBreaker() {
        // 创建断路器配置
        CircuitBreakerConfig config = CircuitBreakerConfig.custom()
                //故障率阈值百分比(百分之50),超过这个阈值,断路器就会打开
                .failureRateThreshold(50)
                //断路器保持打开的时间,在到达设置的时间之后,断路器会进入到 half open 状态
                .waitDurationInOpenState(Duration.ofMillis(1000))
                //当断路器处于half open 状态时,环形缓冲区的大小
                 .ringBufferSizeInHalfOpenState(2)//半打开次数
                .ringBufferSizeInClosedState(2)//至少要调用两次
                .build();
        //按以上配置创建断路器实例
        CircuitBreakerRegistry r1 = CircuitBreakerRegistry.of(config);
        Ci
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值