Spring Framework 7.0 引入了内置的容错功能,通过 @Retryable 和 @ConcurrencyLimit 注解,无需再单独引入 spring-retry 模块即可实现重试和并发控制能力。
Spring Framework 7.0 引入了内置的容错(Resilience)功能,通过@Retryable
和@ConcurrencyLimit
注解,开发者无需再单独引入 spring-retry 模块即可实现重试和并发控制能力。
org.springframework.core.retry
包,将原本属于独立项目 “spring-retry” 的功能集成到了核心框架中。这一重要变化意味着从 Spring Framework 7.0 开始,开发者可以直接使用框架内置的容错功能来构建更加健壮的应用程序,无需额外引入依赖就能轻松应对各种故障场景。
主要新增的注解包括:
@Retryable
:方法重试功能(Method Retry)@ConcurrencyLimit
:并发限制功能(Concurrency Throttling)@Retryable
注解可以应用在方法级别或类级别,为方法调用提供重试能力:
delay * multiplier^attempt + jitter
,有效避免了重试风暴(Retry Storm)问题。
@Retryable
会自动装饰 Project Reactor 的重试管道:
@ConcurrencyLimit
注解用于实现并发限流(Concurrency Throttling),限制方法的并发访问数量: