断路器特性配置

你可以配置断路器时间限制器配置或实例,出现在你的应用配置属性文件里。 属性配置的优先级高于 Java定制器配置。spring-doc.cadn.net.cn

优先级从上到下递减。spring-doc.cadn.net.cn

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”)将申请实例后端A属性spring-doc.cadn.net.cn

  • ReactiveResilience4JCircuitBreakerFactory.create(“backendA”, “groupA”)Resilience4JCircuitBreakerFactory.create(“backendA”, “groupA”)将申请实例后端A属性spring-doc.cadn.net.cn

  • ReactiveResilience4JCircuitBreakerFactory.create(“backendC”)Resilience4JCircuitBreakerFactory.create(“backendC”)将申请全局默认属性spring-doc.cadn.net.cn

  • ReactiveResilience4JCircuitBreakerFactory.create(“backendC”, “groupC”)Resilience4JCircuitBreakerFactory.create(“backendC”, “groupC”)将申请global default CircuitBreaker properties and config groupC TimeLimiter propertiesspring-doc.cadn.net.cn

有关 Resilience4j 属性配置的更多信息,请参见 Resilience4J Spring Boot 2 配置spring-doc.cadn.net.cn

禁用时间限制器

默认情况下,时间限制器启用了,并且每次执行都有时间限制。该时间限制要么被明确定义,要么是默认时间限制(由io.github.resilience4j.timelimiter.TimeLimiterConfig#ofDefaults)被使用。spring-doc.cadn.net.cn

时间限制器可以通过设置属性来全局禁用spring.cloud.circuitbreaker.resilience4j.disable-time-limitertrue.spring-doc.cadn.net.cn

spring:
	cloud:
		circuitbreaker:
			resilience4j:
				disable-time-limiter: true

时间限制器也可以在特定组或实例中禁用,使用spring.cloud.circuitbreaker.resilience4j.disable-time-limiter-map如下:spring-doc.cadn.net.cn

spring:
	cloud:
		circuitbreaker:
			resilience4j:
				disable-time-limiter-map:
					group1: true
					instanceA: false
					instanceB: true

这些禁用选项时间限制春季-云断路器并适用于基础和无功断路器的实现。spring-doc.cadn.net.cn

禁用的优先顺序为:实例 > > 全球.基于上述配置,实例B第一组时间限制器但被禁用实例A已启用。对于所有其他实例和组,它将回退到全局设置的值spring.cloud.circuitbreaker.resilience4j.disable-time-limiter如果spring.cloud.circuitbreaker.resilience4j.disable-time-limiter默认情况下,未被设置,时间限制为剩余的断路器实例和组启用。spring-doc.cadn.net.cn