接口熔断器resilience4j的使用

薄洪涛2个月前JAVA1286

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项目

没有最新的文章了...

相关文章

RabbitMq交换机类型

RabbitMq交换机类型

direct路由键和队列名完全匹配,才可以消费如果绑定时设置了routing key为”abc”,那么客户端提交的消息,只有设置了key为”abc”的才会投递到队列fanout还有一种不需要key的,...

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

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

idea 部署Tomcat服务器

idea 部署Tomcat服务器

一、创建一个web项目1.file-new project,选择正确的jdk版本后(没配置的可以先自行google配置),next2.next3.输入项目名字和路径二,创建Module1.鼠标点中项目...

docker-swarm部署java项目

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

springboot 数据校验

使用import javax.validation.constraints.NotNull import javax.validation.constraints.Size cl...

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

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

发表评论    

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