客户端弹性模式Resilience4j

Resilience4j是一个受Hystrix启发的容错库。它提供了以下模式,以提高网络问题或多个服务故障的容错能力:

  • 断路器(CircuitBreaker)——当被调用的服务发生失败时,停止发出请求。

  • 重试(Retry)——在服务暂时失败时重试服务。

  • 舱壁(Bulkhead)——限制传出的并发服务请求数以避免过载。

  • 限流(RateLimiter)——限制一个服务在一定时间内接收的调用数。

  • 后备——为失败的请求设置备用路径。

通过使用Resilience4j,我们可以通过定义方法的注解,将几种模式应用到相同的方法调用中。如果我们想用舱壁模式和断路器模式限制传出调用的数量,我们可以为该方法定义@CircuitBreaker@Bulkhead注解。重要的是要注意,Resilience4j的重试顺序如下:

Retry ( CircuitBreaker ( RateLimiter ( TimeLimiter ( Bulkhead ( Function ) ) ) ) )

依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>

Last updated