Class RetryableEurekaHttpClient
- java.lang.Object
-
- com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
-
- com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient
-
- All Implemented Interfaces:
EurekaHttpClient
public class RetryableEurekaHttpClient extends EurekaHttpClientDecorator
RetryableEurekaHttpClientretries 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.Quarantine
All the servers to which communication failed are put on the quarantine list. First successful execution clears this list, which makes those server eligible for serving future requests. The list is also cleared once all available servers are exhausted.5xx
If 5xx status code is returned,ServerStatusEvaluatorpredicate evaluates if the retries should be retried on another server, or the response with this status code returned to the client.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
EurekaHttpClientDecorator.RequestExecutor<R>, EurekaHttpClientDecorator.RequestType
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_NUMBER_OF_RETRIES
-
Constructor Summary
Constructors Constructor Description RetryableEurekaHttpClient(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver clusterResolver, TransportClientFactory clientFactory, ServerStatusEvaluator serverStatusEvaluator, int numberOfRetries)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static EurekaHttpClientFactorycreateFactory(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver<EurekaEndpoint> clusterResolver, TransportClientFactory delegateFactory, ServerStatusEvaluator serverStatusEvaluator)protected <R> EurekaHttpResponse<R>execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)voidshutdown()-
Methods inherited from class com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
cancel, deleteStatusOverride, getApplication, getApplications, getDelta, getInstance, getInstance, getSecureVip, getVip, register, sendHeartBeat, statusUpdate
-
-
-
-
Field Detail
-
DEFAULT_NUMBER_OF_RETRIES
public static final int DEFAULT_NUMBER_OF_RETRIES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RetryableEurekaHttpClient
public RetryableEurekaHttpClient(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver clusterResolver, TransportClientFactory clientFactory, ServerStatusEvaluator serverStatusEvaluator, int numberOfRetries)
-
-
Method Detail
-
shutdown
public void shutdown()
-
execute
protected <R> EurekaHttpResponse<R> execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)
- Specified by:
executein classEurekaHttpClientDecorator
-
createFactory
public static EurekaHttpClientFactory createFactory(java.lang.String name, EurekaTransportConfig transportConfig, ClusterResolver<EurekaEndpoint> clusterResolver, TransportClientFactory delegateFactory, ServerStatusEvaluator serverStatusEvaluator)
-
-