Class Resilience4JCircuitBreakerClientHandler

java.lang.Object
com.linecorp.armeria.resilience4j.circuitbreaker.client.Resilience4JCircuitBreakerClientHandler
All Implemented Interfaces:
CircuitBreakerClientHandler

@UnstableApi public final class Resilience4JCircuitBreakerClientHandler extends Object implements CircuitBreakerClientHandler
A CircuitBreakerClientHandler implementation for use with Resilience4j's CircuitBreaker.

 // for HttpRequest
 CircuitBreakerRule rule = CircuitBreakerRule.onStatusClass(HttpStatusClass.SERVER_ERROR);
 CircuitBreakerRegistry registry = CircuitBreakerRegistry.ofDefaults();
 Resilience4jCircuitBreakerMapping mapping =
     Resilience4jCircuitBreakerMapping.builder()
                                      .registry(registry)
                                      .perHost()
                                      .build();
 WebClient.builder()
          .decorator(CircuitBreakerClient.newDecorator(
              Resilience4JCircuitBreakerClientHandler.of(mapping), rule))
          ...

 // for RpcRequest
 CircuitBreakerRuleWithContent rule = ...;
 CircuitBreakerRegistry registry = CircuitBreakerRegistry.ofDefaults();
 Resilience4jCircuitBreakerMapping mapping =
     Resilience4jCircuitBreakerMapping.builder()
                                      .registry(registry)
                                      .perHost()
                                      .build();
 ThriftClients.builder("http://thrift.api.com")
              .rpcDecorator(CircuitBreakerRpcClient.newDecorator(
                  Resilience4JCircuitBreakerClientHandler.of(mapping), rule))
              ...