接口熔断器resilience4j的使用

薄洪涛6个月前JAVA3527

pom引入

<!-- 熔断器 : https://mvnrepository.com/artifact/io.github.resilience4j/resilience4j-spring-boot3 -->
<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-spring-boot3</artifactId>
    <version>2.2.0</version>
</dependency>

配置文件

resilience4j:
  # 熔断器配置
  circuitbreaker:
    instances:
      doctorService:  # 熔断器实例名称
        slidingWindowSize: 10  # 滑动窗口大小,表示用于计算失败率的请求数量
        minimumNumberOfCalls: 5  # 最小调用次数,必须达到此次数才能计算失败率
        failureRateThreshold: 50  # 失败率阈值,超过此比例将触发熔断(百分比)
        waitDurationInOpenState: 20000ms  # 熔断器打开状态持续时间,30秒后进入半开状态
        permittedNumberOfCallsInHalfOpenState: 3  # 半开状态下允许的请求数量

使用

@CircuitBreaker(name = "doctorService", fallbackMethod = "fallback")
public String queryDoctorByRestTemplate() {
   return queryDoctorRestClient.queryDoctor("queryDoctor");
}

public String fallback(Throwable ex) {
    log.error("查询医生失败, 触发熔断...");
    return "查询医生失败, 触发熔断...";
}


标签: resilience4j
返回列表

上一篇:docker-swarm部署java项目

没有最新的文章了...

相关文章

spring中什么情况下事务会失效?

事务失效的场景?权限问题,@Transactional 修饰的方法必须为public方法用final修饰或者是static方法,spring事务底层使用了aop,也就是通过jdk动态代理或者cglib...

centos安装java环境

centos安装java环境

很多工具(比如Lucene )都要依赖java环境,所以我在服务器上装了一个jdk,然后在这篇文章中记录下安装的步骤;当我们修改程序并通过SVN上传到服务器后环境:  &...

springboot实现定时任务

springboot实现定时任务

之前做php的时候,如果想做个定时任务,或者想特定时间调用某个脚本/接口,我们都会考虑使用linux的crontab来实现,比较对于单线程脚本语言来说,做定时不是那么容易然后最近因为开始学习java,...

spring AOP概念及应用场景

spring AOP概念及应用场景

概念面向切面编程,通过预编译和运行期间动态代理实现在不修改源代码的情况下给程序动态统一添加功能的技术思想就是把很多类中对象中横切问题点,从业务逻辑中分离出来,达到解耦的目的,增加代码的重用性,提高开发...

基于dubbo改造现有http调用项目

使用zooker作为注册中心,将现有通过http调用的项目改造成dubbo调用公共项目规定接口public interface OrderService {  ...

docker-swarm部署java项目

技术栈Java 版本: 17Spring Boot 版本: 3.xMyBatis-Plus: 简化 MyBatis 操作的增强工具PostgreSQL: 关系型数据库Redis: 分布式缓存解决方案R...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。