Class SessionedEurekaHttpClient
- java.lang.Object
-
- com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
-
- com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient
-
- All Implemented Interfaces:
EurekaHttpClient
public class SessionedEurekaHttpClient extends EurekaHttpClientDecorator
SessionedEurekaHttpClientenforces full reconnect at a regular interval (a session), preventing a client to sticking to a particular Eureka server instance forever. This in turn guarantees even load distribution in case of cluster topology change.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
EurekaHttpClientDecorator.RequestExecutor<R>, EurekaHttpClientDecorator.RequestType
-
-
Constructor Summary
Constructors Constructor Description SessionedEurekaHttpClient(java.lang.String name, EurekaHttpClientFactory clientFactory, long sessionDurationMs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <R> EurekaHttpResponse<R>execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)longgetCurrentSessionDuration()protected longrandomizeSessionDuration(long sessionDurationMs)voidshutdown()-
Methods inherited from class com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator
cancel, deleteStatusOverride, getApplication, getApplications, getDelta, getInstance, getInstance, getSecureVip, getVip, register, sendHeartBeat, statusUpdate
-
-
-
-
Constructor Detail
-
SessionedEurekaHttpClient
public SessionedEurekaHttpClient(java.lang.String name, EurekaHttpClientFactory clientFactory, long sessionDurationMs)
-
-
Method Detail
-
execute
protected <R> EurekaHttpResponse<R> execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)
- Specified by:
executein classEurekaHttpClientDecorator
-
shutdown
public void shutdown()
-
randomizeSessionDuration
protected long randomizeSessionDuration(long sessionDurationMs)
- Returns:
- a randomized sessionDuration in ms calculated as +/- an additional amount in [0, sessionDurationMs/2]
-
getCurrentSessionDuration
public long getCurrentSessionDuration()
-
-