public final class CircuitBreakerRpcClient extends AbstractCircuitBreakerClient<RpcRequest,RpcResponse> implements RpcClient
RpcClient decorator that handles failures of RPC remote invocation based on
circuit breaker pattern.execute, reportSuccessOrFailure, strategy, strategyWithContentas, delegate, toStringpublic static Function<? super RpcClient,CircuitBreakerRpcClient> newDecorator(CircuitBreaker circuitBreaker, CircuitBreakerStrategyWithContent<RpcResponse> strategy)
CircuitBreaker instance and
CircuitBreakerStrategy.
Since CircuitBreaker is a unit of failure detection, don't reuse the same instance for
unrelated services.
circuitBreaker - The CircuitBreaker instance to be usedpublic static Function<? super RpcClient,CircuitBreakerRpcClient> newDecorator(CircuitBreakerMapping mapping, CircuitBreakerStrategyWithContent<RpcResponse> strategy)
CircuitBreakerMapping and
CircuitBreakerStrategy.
Since CircuitBreaker is a unit of failure detection, don't reuse the same instance for
unrelated services.
public static Function<? super RpcClient,CircuitBreakerRpcClient> newPerMethodDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategyWithContent<RpcResponse> strategy)
CircuitBreaker per RPC method name with the specified
CircuitBreakerStrategy.
Since CircuitBreaker is a unit of failure detection, don't reuse the same instance for
unrelated services.
factory - A function that takes an RPC method name and creates a new CircuitBreaker.public static Function<? super RpcClient,CircuitBreakerRpcClient> newPerHostDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategyWithContent<RpcResponse> strategy)
CircuitBreaker per host with the specified
CircuitBreakerStrategy.
Since CircuitBreaker is a unit of failure detection, don't reuse the same instance for
unrelated services.
factory - a function that takes a host name and creates a new CircuitBreakerpublic static Function<? super RpcClient,CircuitBreakerRpcClient> newPerHostAndMethodDecorator(Function<String,CircuitBreaker> factory, CircuitBreakerStrategyWithContent<RpcResponse> strategy)
CircuitBreaker per host and RPC method name with
the specified CircuitBreakerStrategy.
Since CircuitBreaker is a unit of failure detection, don't reuse the same instance for
unrelated services.
factory - a function that takes a host+method and creates a new CircuitBreakerpublic static CircuitBreakerRpcClientBuilder builder(CircuitBreakerStrategyWithContent<RpcResponse> strategyWithContent)
CircuitBreakerRpcClientBuilder with
the specified CircuitBreakerStrategyWithContent.protected RpcResponse doExecute(ClientRequestContext ctx, RpcRequest req, CircuitBreaker circuitBreaker) throws Exception
AbstractCircuitBreakerClientCircuitBreaker is in closed state.doExecute in class AbstractCircuitBreakerClient<RpcRequest,RpcResponse>ExceptionCopyright © 2020 LeanCloud. All rights reserved.