1

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?

  • FYI, as of 08/29/2022, this is not supported in Micronaut. https://github.com/resilience4j/resilience4j/issues/1749#issuecomment-1229841947 – Alarka Sanyal Aug 29 '22 at 18:19

0 Answers0