Updating the Resilience4j CircuitBreaker Properties in Micronaut while the app is running

Viewed 39

Resilience4j version: 1.7.1

Java version: 11

Micronaut version: 3.2.7

Can we change the CircuitBreaker Properties of an instance dynamically while the application is running? The following returns an existing Bean or creates a new one.

/**
 * Returns a managed {@link CircuitBreaker} or creates a new one with a custom CircuitBreaker
 * configuration.
 *
 * @param name   the name of the CircuitBreaker
 * @param config a custom CircuitBreaker configuration
 * @return The {@link CircuitBreaker}
 */
CircuitBreaker circuitBreaker(String name, CircuitBreakerConfig config);

At start up of the application, I am doing this to create the CircuitBreakerRegistry and adding an instance myInstanceA to the circuitBreakerRegistry entryMap.

// Create a custom configuration CircuitBreaker
val circuitBreakerConfig: CircuitBreakerConfig = CircuitBreakerConfig.custom()
    .slidingWindowSize(10)
    .minimumNumberOfCalls(5)
    .permittedNumberOfCallsInHalfOpenState(3)
    .automaticTransitionFromOpenToHalfOpenEnabled(true)
    .waitDurationInOpenState(Duration.ofMillis(5000))
    .failureRateThreshold(50F)
    .build()
circuitBreakerRegistry = CircuitBreakerRegistry.of(circuitBreakerConfig)
val cb: CircuitBreaker = circuitBreakerRegistry.circuitBreaker("myInstanceA", circuitBreakerConfig)

After start up, at a later time, if I want to change the failureRateThreshold to 70F for the instance myInstanceA, is that an option in Micronaut?

0 Answers
Related