public class RetryableEurekaHttpClient extends EurekaHttpClientDecorator
RetryableEurekaHttpClient
retries failed requests on subsequent servers in the cluster.
It maintains also simple quarantine list, so operations are not retried again on servers
that are not reachable at the moment.
ServerStatusEvaluator
predicate evaluates if the retries should be
retried on another server, or the response with this status code returned to the client.EurekaHttpClientDecorator.RequestExecutor<R>, EurekaHttpClientDecorator.RequestType
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_NUMBER_OF_RETRIES |
Constructor and Description |
---|
RetryableEurekaHttpClient(java.lang.String name,
EurekaTransportConfig transportConfig,
ClusterResolver clusterResolver,
TransportClientFactory clientFactory,
ServerStatusEvaluator serverStatusEvaluator,
int numberOfRetries) |
Modifier and Type | Method and Description |
---|---|
static EurekaHttpClientFactory |
createFactory(java.lang.String name,
EurekaTransportConfig transportConfig,
ClusterResolver<EurekaEndpoint> clusterResolver,
TransportClientFactory delegateFactory,
ServerStatusEvaluator serverStatusEvaluator) |
protected <R> EurekaHttpResponse<R> |
execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor) |
long |
getQuarantineSetSize() |
void |
shutdown() |
cancel, deleteStatusOverride, getApplication, getApplications, getDelta, getInstance, getInstance, getSecureVip, getVip, register, sendHeartBeat, statusUpdate
public static final int DEFAULT_NUMBER_OF_RETRIES
public RetryableEurekaHttpClient(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver clusterResolver, TransportClientFactory clientFactory, ServerStatusEvaluator serverStatusEvaluator, int numberOfRetries)
public void shutdown()
protected <R> EurekaHttpResponse<R> execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)
execute
in class EurekaHttpClientDecorator
public static EurekaHttpClientFactory createFactory(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver<EurekaEndpoint> clusterResolver, TransportClientFactory delegateFactory, ServerStatusEvaluator serverStatusEvaluator)
@Monitor(name="eurekaClient.transport.quarantineSize", description="number of servers quarantined", type=GAUGE) public long getQuarantineSetSize()