您可以在应用程序的配置属性文件中配置和配置或实例。
属性配置的优先级高于 Java 配置。CircuitBreaker
TimeLimiter
Customizer
优先级从上到下递减。
-
Method(id) 配置 - 关于特定方法或操作
-
Service(group) config - 针对特定应用程序服务或操作
-
全局默认配置
ReactiveResilience4JCircuitBreakerFactory.create(String id, String groupName)
Resilience4JCircuitBreakerFactory.create(String id, String groupName)
全局默认属性配置
resilience4j.circuitbreaker:
configs:
default:
registerHealthIndicator: true
slidingWindowSize: 50
resilience4j.timelimiter:
configs:
default:
timeoutDuration: 5s
cancelRunningFuture: true
配置属性配置
resilience4j.circuitbreaker:
configs:
groupA:
registerHealthIndicator: true
slidingWindowSize: 200
resilience4j.timelimiter:
configs:
groupC:
timeoutDuration: 3s
cancelRunningFuture: true
实例属性配置
resilience4j.circuitbreaker:
instances:
backendA:
registerHealthIndicator: true
slidingWindowSize: 100
backendB:
registerHealthIndicator: true
slidingWindowSize: 10
permittedNumberOfCallsInHalfOpenState: 3
slidingWindowType: TIME_BASED
recordFailurePredicate: io.github.robwin.exception.RecordFailurePredicate
resilience4j.timelimiter:
instances:
backendA:
timeoutDuration: 2s
cancelRunningFuture: true
backendB:
timeoutDuration: 1s
cancelRunningFuture: false
-
ReactiveResilience4JCircuitBreakerFactory.create("backendA")
或将申请Resilience4JCircuitBreakerFactory.create("backendA")
instances backendA properties
-
ReactiveResilience4JCircuitBreakerFactory.create("backendA", "groupA")
或将申请Resilience4JCircuitBreakerFactory.create("backendA", "groupA")
instances backendA properties
-
ReactiveResilience4JCircuitBreakerFactory.create("backendC")
或将申请Resilience4JCircuitBreakerFactory.create("backendC")
global default properties
-
ReactiveResilience4JCircuitBreakerFactory.create("backendC", "groupC")
或将申请Resilience4JCircuitBreakerFactory.create("backendC", "groupC")
global default CircuitBreaker properties and config groupC TimeLimiter properties
有关 Resilience4j 属性配置的详细信息,请参阅 Resilience4J Spring Boot 2 配置。
禁用 TimeLimiter
默认情况下,启用 并且每次执行都受时间限制的支持。此时间限制是显式定义的,或者使用默认时间限制(由 提供)。TimeLimiter
io.github.resilience4j.timelimiter.TimeLimiterConfig#ofDefaults
可以通过将属性设置为 来全局禁用 。TimeLimiter
spring.cloud.circuitbreaker.resilience4j.disable-time-limiter
true
spring:
cloud:
circuitbreaker:
resilience4j:
disable-time-limiter: true
此类型的选项仅在全局范围内提供,并适用于
基本和无功断路器实现。spring-cloud-circuitbreaker