小工具知识网

当前位置: 首页 > 行业知识 > springcloud:3.5测试慢调用熔断降级

行业知识

springcloud:3.5测试慢调用熔断降级

2026-11-08 11:07:52 来源:互联网转载

�index.php/tags-41973.html" >�

服务提供者【test-provider8001】

 Openfeign远程调用服务提供者搭建

文章地址http://t.csdnimg.cn/06iz8

相关接口

测试远程调用:http://localhost:8001/payment/index

服务消费者【test-consumer-resilience4j8004】

 Openfeign远程调用消费者搭建

文章地址http://t.csdnimg.cn/06iz8

依赖

                     io.github.resilience4j            resilience4j-spring-cloud2                            org.springframework.cloud            spring-cloud-starter-circuitbreaker-resilience4j        

application.yml

resilience4j.circuitbreaker:  configs:    default:      # 熔断器打开的失败阈值      failureRateThreshold: 30      # 默认滑动窗口大小,circuitbreaker使用基于计数和时间范围欢动窗口聚合统计失败率      slidingWindowSize: 10      # 滑动窗口类型,默认为基于计数的滑动窗口      slidingWindowType: TIME_BASED      # 计算比率的最小值,和滑动窗口大小去最小值,即当请求发生5次才会计算失败率      minimumNumberOfCalls: 5      # 半开状态允许的请求数      permittedNumberOfCallsInHalfOpenState: 3      # 是否自动从打开到半开      automaticTransitionFromOpenToHalfOpenEnabled: true      # 熔断器从打开到半开需要的时间      waitDurationInOpenState: 2s      recordExceptions:        - java.lang.Exception  instances:    # 异常熔断比例降级    # 实例名称:自己定义的名称,对应@CircuitBreaker的name    backendA:      # 采用上面的default配置      baseConfig: default    # 慢调用熔断比例降级    # 实例名称:自己定义的名称,对应@CircuitBreaker的name    backendB:      # 熔断器打开的失败阈值      failureRateThreshold: 50      # 慢调用时间阈值,超过两秒就算慢调用      slowCallDurationThreshold: 2s      # 慢调用百分比阈值,断路器吧调用事件大于slow      slowCallRateThreshold: 30      slidingWindowSize: 10      slidingWindowType: TIME_BASED      minimumNumberOfCalls: 2      permittedNumberOfCallsInHalfOpenState: 2      waitDurationInOpenState: 2s      eventConsumerBufferSize: 10

OrderController【控制层】

/**     * 慢调用比例熔断降级     *     * @return     */    @GetMapping("/slowcircuitbackend")    @CircuitBreaker(name = "backendB", fallbackMethod = "slowcircuitbackendFallback")    public String slowcircuitbackend() {        log.info("************ 进入方法 ***********");        //沉睡10秒,触发慢调用        try {            TimeUnit.SECONDS.sleep(10);        } catch (InterruptedException e) {            e.printStackTrace();        }        String index = paymentFeignService.paymentIndex();        log.info("************ 离开方法 ***********");        return index;    }    /**     * 慢调用比例熔断降级方法     *     * @param e     * @return     */    public String slowcircuitbackendFallback(Throwable e) {        e.printStackTrace();        return "太慢了,触发慢调用比例熔断降级";    }

相关接口

测试慢调用比例熔断降级:http://localhost:8004/order/slowcircuitbackend

上一篇:Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)

下一篇:怎么找qq代理服务器?