| For the latest stable version, please use Spring-Cloud-CircuitBreaker 3.3.0! | 
Circuit Breaker Properties Configuration
You can configure CircuitBreaker and TimeLimiter configs or instances in your application’s configuration properties file.
Property configuration has higher priority than Java Customizer configuration.
Descending priority from top to bottom.
- 
Method(id) config - on specific method or operation 
- 
Service(group) config - on specific application service or operations 
- 
Global default config 
ReactiveResilience4JCircuitBreakerFactory.create(String id, String groupName)
Resilience4JCircuitBreakerFactory.create(String id, String groupName)Global Default Properties Configuration
resilience4j.circuitbreaker:
    configs:
        default:
            registerHealthIndicator: true
            slidingWindowSize: 50
resilience4j.timelimiter:
    configs:
        default:
            timeoutDuration: 5s
            cancelRunningFuture: trueConfigs Properties Configuration
resilience4j.circuitbreaker:
    configs:
        groupA:
            registerHealthIndicator: true
            slidingWindowSize: 200
resilience4j.timelimiter:
    configs:
        groupC:
            timeoutDuration: 3s
            cancelRunningFuture: trueInstances Properties Configuration
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")orResilience4JCircuitBreakerFactory.create("backendA")will applyinstances backendA properties
- 
ReactiveResilience4JCircuitBreakerFactory.create("backendA", "groupA")orResilience4JCircuitBreakerFactory.create("backendA", "groupA")will applyinstances backendA properties
- 
ReactiveResilience4JCircuitBreakerFactory.create("backendC")orResilience4JCircuitBreakerFactory.create("backendC")will applyglobal default properties
- 
ReactiveResilience4JCircuitBreakerFactory.create("backendC", "groupC")orResilience4JCircuitBreakerFactory.create("backendC", "groupC")will applyglobal default CircuitBreaker properties and config groupC TimeLimiter properties
For more information on Resilience4j property configuration, see Resilience4J Spring Boot 2 Configuration.
Disabling the TimeLimiter
By default, the TimeLimiter is enabled and every execution is backed by a time limit. This time limit is either defined explicitly or the default time limit (provided by io.github.resilience4j.timelimiter.TimeLimiterConfig#ofDefaults) is used.
The TimeLimiter can be globally disabled by setting the property spring.cloud.circuitbreaker.resilience4j.disable-time-limiter to true.
spring:
	cloud:
		circuitbreaker:
			resilience4j:
				disable-time-limiter: trueTimeLimiter can also be disabled for specific group or instances using spring.cloud.circuitbreaker.resilience4j.disable-time-limiter-map as below:
spring:
	cloud:
		circuitbreaker:
			resilience4j:
				disable-time-limiter-map:
					group1: true
					instanceA: false
					instanceB: trueThese options for disabling TimeLimit are provided within spring-cloud-circuitbreaker and applies to both basic and reactive circuitbreaker implementation.
Priority order of disabling is : instance > group > global. Based on above configuration, instanceB and group1 have TimeLimiter disabled but instanceA has enabled. For all other instances and groups, it will fall back to globally set value of spring.cloud.circuitbreaker.resilience4j.disable-time-limiter
If spring.cloud.circuitbreaker.resilience4j.disable-time-limiter is not set, by default,  TimeLimit is enabled for remaining circuitbreaker instances and groups.