MST
星途 面试题库

面试题:微服务架构中Resilience4J断路器的基础配置及常用场景

在Spring Cloud项目中使用Resilience4J实现断路器功能,简述其基础配置步骤,并举例说明两个常见的应用场景。
30.1万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

基础配置步骤

  1. 引入依赖:在pom.xml中添加Resilience4J相关依赖,例如:
<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-spring-boot2</artifactId>
    <version>版本号</version>
</dependency>
<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-circuitbreaker</artifactId>
    <version>版本号</version>
</dependency>
  1. 配置断路器:在application.yml中进行配置,如:
resilience4j.circuitbreaker:
  instances:
    example:
      slidingWindowSize: 10
      permittedNumberOfCallsInHalfOpenState: 3
      failureRateThreshold: 50
      waitDurationInOpenState: 10s
  1. 使用注解:在需要添加断路器的方法上使用@CircuitBreaker(name = "example", fallbackMethod = "fallbackMethod")注解,其中name对应application.yml中配置的实例名,fallbackMethod指定降级方法。

常见应用场景

  1. 远程服务调用:当调用第三方API时,由于网络波动、服务端故障等原因可能导致调用失败。通过断路器,可以在一定次数失败后,快速熔断,避免反复调用造成的资源浪费,同时执行降级逻辑,如返回本地缓存数据或友好的提示信息。例如,电商系统调用物流查询接口时,如果物流服务出现故障,断路器可防止大量无效调用,给用户返回“物流信息查询暂时不可用,请稍后重试”的提示。
  2. 微服务内部调用:在微服务架构中,服务之间相互调用频繁。如果某个微服务出现性能问题或故障,可能会影响到依赖它的其他微服务。断路器可保护依赖的微服务,在被调用微服务故障时,快速熔断并执行降级逻辑。比如,订单服务调用库存服务进行扣减库存操作,若库存服务因某种原因不可用,断路器可让订单服务执行本地补偿逻辑,如记录待处理订单,而不是一直等待库存服务响应。