Search in sources :

Example 1 with InMemoryCircuitBreakerRegistry

use of io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry in project resilience4j by resilience4j.

the class CircuitBreakerAutoConfiguration method circuitBreakerRegistry.

@Bean
public CircuitBreakerRegistry circuitBreakerRegistry(CircuitBreakerProperties circuitBreakerProperties, EventConsumerRegistry<CircuitBreakerEvent> eventConsumerRegistry, ConfigurableBeanFactory beanFactory) {
    CircuitBreakerRegistry circuitBreakerRegistry = new InMemoryCircuitBreakerRegistry();
    circuitBreakerProperties.getBackends().forEach((name, properties) -> {
        CircuitBreakerConfig circuitBreakerConfig = circuitBreakerProperties.createCircuitBreakerConfig(name);
        CircuitBreaker circuitBreaker = circuitBreakerRegistry.circuitBreaker(name, circuitBreakerConfig);
        circuitBreaker.getEventPublisher().onEvent(eventConsumerRegistry.createEventConsumer(name, properties.getEventConsumerBufferSize()));
        if (properties.getRegisterHealthIndicator()) {
            CircuitBreakerHealthIndicator healthIndicator = new CircuitBreakerHealthIndicator(circuitBreaker);
            beanFactory.registerSingleton(name + "CircuitBreakerHealthIndicator", healthIndicator);
        }
    });
    return circuitBreakerRegistry;
}
Also used : CircuitBreaker(io.github.resilience4j.circuitbreaker.CircuitBreaker) CircuitBreakerHealthIndicator(io.github.resilience4j.circuitbreaker.monitoring.health.CircuitBreakerHealthIndicator) InMemoryCircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry) InMemoryCircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry) CircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry) CircuitBreakerConfig(io.github.resilience4j.circuitbreaker.CircuitBreakerConfig) Bean(org.springframework.context.annotation.Bean)

Example 2 with InMemoryCircuitBreakerRegistry

use of io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry in project resilience4j by resilience4j.

the class CircuitBreakerExportsTest method testConstructors.

@Test
public void testConstructors() {
    final CircuitBreakerRegistry registry = new InMemoryCircuitBreakerRegistry();
    CircuitBreakerExports.ofIterable("boo_breakers", singleton(CircuitBreaker.ofDefaults("foo")));
    CircuitBreakerExports.ofCircuitBreakerRegistry("boo_breakers", registry);
    CircuitBreakerExports.ofSupplier("boo_breakers", () -> singleton(CircuitBreaker.ofDefaults("foo")));
    CircuitBreakerExports.ofIterable(singleton(CircuitBreaker.ofDefaults("foo")));
    CircuitBreakerExports.ofCircuitBreakerRegistry(registry);
    CircuitBreakerExports.ofSupplier(() -> singleton(CircuitBreaker.ofDefaults("foo")));
}
Also used : InMemoryCircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry) InMemoryCircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry) CircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry) Test(org.junit.Test)

Aggregations

CircuitBreakerRegistry (io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry)2 InMemoryCircuitBreakerRegistry (io.github.resilience4j.circuitbreaker.internal.InMemoryCircuitBreakerRegistry)2 CircuitBreaker (io.github.resilience4j.circuitbreaker.CircuitBreaker)1 CircuitBreakerConfig (io.github.resilience4j.circuitbreaker.CircuitBreakerConfig)1 CircuitBreakerHealthIndicator (io.github.resilience4j.circuitbreaker.monitoring.health.CircuitBreakerHealthIndicator)1 Test (org.junit.Test)1 Bean (org.springframework.context.annotation.Bean)1