| 对于最新的稳定版本,请使用 Spring-Cloud-CircuitBreaker 3.3.0! | 
断路器属性配置
您可以配置CircuitBreaker和TimeLimiter应用程序的配置文件属性文件中的配置或实例。
属性配置的优先级高于 JavaCustomizer配置。
优先级从上到下降序。
- 
Method(id) 配置 - 特定方法或作 
- 
Service(group) 配置 - 在特定的应用程序服务或作上 
- 
全局默认配置 
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: trueTimeLimiter也可以使用spring.cloud.circuitbreaker.resilience4j.disable-time-limiter-map如下:
spring:
	cloud:
		circuitbreaker:
			resilience4j:
				disable-time-limiter-map:
					group1: true
					instanceA: false
					instanceB: true这些用于禁用的选项TimeLimit在spring-cloud-circuitbreaker并适用于基本和无功断路器实现。
禁用的优先级顺序为:instance > group > global.基于上述配置,instanceB和group1有TimeLimiterdisabled 但instanceA已启用。对于所有其他实例和组,它将回退到全局设置的值spring.cloud.circuitbreaker.resilience4j.disable-time-limiter如果spring.cloud.circuitbreaker.resilience4j.disable-time-limiter默认情况下,未设置TimeLimit为其余断路器实例和组启用。