public class SessionedEurekaHttpClient extends EurekaHttpClientDecorator
SessionedEurekaHttpClient
enforces 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.EurekaHttpClientDecorator.RequestExecutor<R>, EurekaHttpClientDecorator.RequestType
Constructor and Description |
---|
SessionedEurekaHttpClient(java.lang.String name,
EurekaHttpClientFactory clientFactory,
long sessionDurationMs) |
Modifier and Type | Method and Description |
---|---|
protected <R> EurekaHttpResponse<R> |
execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor) |
long |
getCurrentSessionDuration() |
protected long |
randomizeSessionDuration(long sessionDurationMs) |
void |
shutdown() |
cancel, deleteStatusOverride, getApplication, getApplications, getDelta, getInstance, getInstance, getSecureVip, getVip, register, sendHeartBeat, statusUpdate
public SessionedEurekaHttpClient(java.lang.String name, EurekaHttpClientFactory clientFactory, long sessionDurationMs)
protected <R> EurekaHttpResponse<R> execute(EurekaHttpClientDecorator.RequestExecutor<R> requestExecutor)
execute
in class EurekaHttpClientDecorator
public void shutdown()
protected long randomizeSessionDuration(long sessionDurationMs)
@Monitor(name="eurekaClient.transport.currentSessionDuration", description="Duration of the current session", type=GAUGE) public long getCurrentSessionDuration()