Class Resilience4JCircuitBreakerClientHandler
java.lang.Object
com.linecorp.armeria.resilience4j.circuitbreaker.client.Resilience4JCircuitBreakerClientHandler
- All Implemented Interfaces:
com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler
@UnstableApi
public final class Resilience4JCircuitBreakerClientHandler
extends Object
implements com.linecorp.armeria.client.circuitbreaker.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))
...
-
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandlerof()Creates a defaultCircuitBreakerClientHandlerwhich usesResilience4jCircuitBreakerMapping.of()to handle requests.static com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandlerof(Resilience4jCircuitBreakerMapping mapping) Creates a defaultCircuitBreakerClientHandlerwhich uses the providedCircuitBreakerMappingto handle requests.static com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandlerof(io.github.resilience4j.circuitbreaker.CircuitBreaker circuitBreaker) Creates a defaultCircuitBreakerClientHandlerwhich uses the providedCircuitBreakerto handle requests.com.linecorp.armeria.common.circuitbreaker.CircuitBreakerCallbacktryRequest(com.linecorp.armeria.client.ClientRequestContext ctx, com.linecorp.armeria.common.Request req)
-
Method Details
-
of
public static com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler of()Creates a defaultCircuitBreakerClientHandlerwhich usesResilience4jCircuitBreakerMapping.of()to handle requests. -
of
public static com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler of(io.github.resilience4j.circuitbreaker.CircuitBreaker circuitBreaker) Creates a defaultCircuitBreakerClientHandlerwhich uses the providedCircuitBreakerto handle requests. -
of
public static com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler of(Resilience4jCircuitBreakerMapping mapping) Creates a defaultCircuitBreakerClientHandlerwhich uses the providedCircuitBreakerMappingto handle requests. -
tryRequest
public com.linecorp.armeria.common.circuitbreaker.CircuitBreakerCallback tryRequest(com.linecorp.armeria.client.ClientRequestContext ctx, com.linecorp.armeria.common.Request req) - Specified by:
tryRequestin interfacecom.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler
-
isCircuitBreakerException
- Specified by:
isCircuitBreakerExceptionin interfacecom.linecorp.armeria.client.circuitbreaker.CircuitBreakerClientHandler
-