Class CircuitBreakerHttpClient
- java.lang.Object
-
- com.linecorp.armeria.client.DecoratingClient<I,O,I,O>
-
- com.linecorp.armeria.client.SimpleDecoratingClient<I,O>
-
- com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClient<HttpRequest,HttpResponse>
-
- com.linecorp.armeria.client.circuitbreaker.CircuitBreakerHttpClient
-
- All Implemented Interfaces:
Client<HttpRequest,HttpResponse>
public final class CircuitBreakerHttpClient extends CircuitBreakerClient<HttpRequest,HttpResponse>
AClient
decorator that handles failures of HTTP requests based on circuit breaker pattern.
-
-
Method Summary
-
Methods inherited from class com.linecorp.armeria.client.circuitbreaker.CircuitBreakerClient
execute, reportSuccessOrFailure, strategy, strategyWithContent
-
Methods inherited from class com.linecorp.armeria.client.DecoratingClient
delegate, toString
-
-
-
-
Method Detail
-
newDecorator
public static Function<Client<HttpRequest,HttpResponse>,CircuitBreakerHttpClient> newDecorator(CircuitBreaker circuitBreaker, CircuitBreakerStrategy strategy)
Creates a new decorator using the specifiedCircuitBreaker
instance andCircuitBreakerStrategy
.Since
CircuitBreaker
is a unit of failure detection, don't reuse the same instance for unrelated services.
-
newDecorator
public static Function<Client<HttpRequest,HttpResponse>,CircuitBreakerHttpClient> newDecorator(CircuitBreakerMapping mapping, CircuitBreakerStrategy strategy)
Creates a new decorator with the specifiedCircuitBreakerMapping
andCircuitBreakerStrategy
.Since
CircuitBreaker
is a unit of failure detection, don't reuse the same instance for unrelated services.
-
newPerMethodDecorator
public static Function<Client<HttpRequest,HttpResponse>,CircuitBreakerHttpClient> newPerMethodDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategy strategy)
Creates a new decorator that binds oneCircuitBreaker
perHttpMethod
with the specifiedCircuitBreakerStrategy
.Since
CircuitBreaker
is a unit of failure detection, don't reuse the same instance for unrelated services.- Parameters:
factory
- a function that takes aHttpMethod
and creates a newCircuitBreaker
-
newPerHostDecorator
public static Function<Client<HttpRequest,HttpResponse>,CircuitBreakerHttpClient> newPerHostDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategy strategy)
Creates a new decorator that binds oneCircuitBreaker
per host with the specifiedCircuitBreakerStrategy
.Since
CircuitBreaker
is a unit of failure detection, don't reuse the same instance for unrelated services.- Parameters:
factory
- a function that takes a host name and creates a newCircuitBreaker
-
newPerHostAndMethodDecorator
public static Function<Client<HttpRequest,HttpResponse>,CircuitBreakerHttpClient> newPerHostAndMethodDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategy strategy)
Creates a new decorator that binds oneCircuitBreaker
per host andHttpMethod
with the specifiedCircuitBreakerStrategy
.Since
CircuitBreaker
is a unit of failure detection, don't reuse the same instance for unrelated services.- Parameters:
factory
- a function that takes a host+method and creates a newCircuitBreaker
-
doExecute
protected HttpResponse doExecute(ClientRequestContext ctx, HttpRequest req, CircuitBreaker circuitBreaker) throws Exception
Description copied from class:CircuitBreakerClient
Invoked when theCircuitBreaker
is in closed state.- Specified by:
doExecute
in classCircuitBreakerClient<HttpRequest,HttpResponse>
- Throws:
Exception
-
-