public class LoadBalancerContext
extends java.lang.Object
implements com.netflix.client.IClientConfigAware
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
clientName |
protected com.netflix.client.RetryHandler |
defaultRetryHandler |
protected int |
maxAutoRetries |
protected int |
maxAutoRetriesNextServer |
protected boolean |
okToRetryOnAllOperations |
protected java.lang.String |
vipAddresses |
Constructor and Description |
---|
LoadBalancerContext(ILoadBalancer lb) |
LoadBalancerContext(ILoadBalancer lb,
com.netflix.client.config.IClientConfig clientConfig)
Delegate to
initWithNiwsConfig(IClientConfig) |
LoadBalancerContext(ILoadBalancer lb,
com.netflix.client.config.IClientConfig clientConfig,
com.netflix.client.RetryHandler handler) |
Modifier and Type | Method and Description |
---|---|
protected com.netflix.util.Pair<java.lang.String,java.lang.Integer> |
deriveHostAndPortFromVipAddress(java.lang.String vipAddress)
Derive the host and port from virtual address if virtual address is indeed contains the actual host
and port of the server.
|
protected com.netflix.util.Pair<java.lang.String,java.lang.Integer> |
deriveSchemeAndPortFromPartialUri(java.net.URI uri)
Derive scheme and port from a partial URI.
|
protected com.netflix.client.ClientException |
generateNIWSException(java.lang.String uri,
java.lang.Throwable e) |
java.lang.String |
getClientName() |
protected java.lang.Throwable |
getDeepestCause(java.lang.Throwable e) |
protected int |
getDefaultPortFromScheme(java.lang.String scheme)
Get the default port of the target server given the scheme of vip address if it is available.
|
com.netflix.servo.monitor.Timer |
getExecuteTracer() |
ILoadBalancer |
getLoadBalancer() |
int |
getMaxAutoRetries()
Deprecated.
|
int |
getMaxAutoRetriesNextServer()
Deprecated.
|
protected int |
getNumberRetriesOnSameServer(com.netflix.client.config.IClientConfig overriddenClientConfig) |
protected int |
getRetriesNextServer(com.netflix.client.config.IClientConfig overriddenClientConfig) |
com.netflix.client.RetryHandler |
getRetryHandler() |
Server |
getServerFromLoadBalancer(java.net.URI original,
java.lang.Object loadBalancerKey)
Compute the final URI from a partial URI in the request.
|
ServerStats |
getServerStats(Server server) |
boolean |
handleSameServerRetry(Server server,
int currentRetryCount,
int maxRetries,
java.lang.Throwable e) |
void |
initWithNiwsConfig(com.netflix.client.config.IClientConfig clientConfig)
Set necessary parameters from client configuration and register with Servo monitors.
|
boolean |
isOkToRetryOnAllOperations() |
protected void |
noteError(ServerStats stats,
com.netflix.client.ClientRequest request,
java.lang.Throwable e,
long responseTime)
This is called after an error is thrown from the client
to update related stats.
|
void |
noteOpenConnection(ServerStats serverStats)
This is usually called just before client execute a request.
|
protected void |
noteRequestCompletion(ServerStats stats,
java.lang.Object response,
java.lang.Throwable e,
long responseTime) |
void |
noteRequestCompletion(ServerStats stats,
java.lang.Object response,
java.lang.Throwable e,
long responseTime,
com.netflix.client.RetryHandler errorHandler)
This is called after a response is received or an exception is thrown from the client
to update related stats.
|
protected void |
noteResponse(ServerStats stats,
com.netflix.client.ClientRequest request,
java.lang.Object response,
long responseTime)
This is called after a response is received from the client
to update related stats.
|
java.net.URI |
reconstructURIWithServer(Server server,
java.net.URI original) |
void |
setLoadBalancer(ILoadBalancer lb) |
void |
setMaxAutoRetries(int maxAutoRetries)
Deprecated.
|
void |
setMaxAutoRetriesNextServer(int maxAutoRetriesNextServer)
Deprecated.
|
void |
setOkToRetryOnAllOperations(boolean okToRetryOnAllOperations) |
void |
setRetryHandler(com.netflix.client.RetryHandler retryHandler) |
protected java.lang.String clientName
protected java.lang.String vipAddresses
protected int maxAutoRetriesNextServer
protected int maxAutoRetries
protected com.netflix.client.RetryHandler defaultRetryHandler
protected boolean okToRetryOnAllOperations
public LoadBalancerContext(ILoadBalancer lb)
public LoadBalancerContext(ILoadBalancer lb, com.netflix.client.config.IClientConfig clientConfig)
initWithNiwsConfig(IClientConfig)
clientConfig
- public LoadBalancerContext(ILoadBalancer lb, com.netflix.client.config.IClientConfig clientConfig, com.netflix.client.RetryHandler handler)
public void initWithNiwsConfig(com.netflix.client.config.IClientConfig clientConfig)
initWithNiwsConfig
in interface com.netflix.client.IClientConfigAware
public com.netflix.servo.monitor.Timer getExecuteTracer()
public java.lang.String getClientName()
public ILoadBalancer getLoadBalancer()
public void setLoadBalancer(ILoadBalancer lb)
@Deprecated public int getMaxAutoRetriesNextServer()
@Deprecated public void setMaxAutoRetriesNextServer(int maxAutoRetriesNextServer)
@Deprecated public int getMaxAutoRetries()
@Deprecated public void setMaxAutoRetries(int maxAutoRetries)
protected java.lang.Throwable getDeepestCause(java.lang.Throwable e)
protected com.netflix.client.ClientException generateNIWSException(java.lang.String uri, java.lang.Throwable e)
protected void noteRequestCompletion(ServerStats stats, java.lang.Object response, java.lang.Throwable e, long responseTime)
public void noteRequestCompletion(ServerStats stats, java.lang.Object response, java.lang.Throwable e, long responseTime, com.netflix.client.RetryHandler errorHandler)
protected void noteError(ServerStats stats, com.netflix.client.ClientRequest request, java.lang.Throwable e, long responseTime)
protected void noteResponse(ServerStats stats, com.netflix.client.ClientRequest request, java.lang.Object response, long responseTime)
public void noteOpenConnection(ServerStats serverStats)
protected com.netflix.util.Pair<java.lang.String,java.lang.Integer> deriveSchemeAndPortFromPartialUri(java.net.URI uri)
getServerFromLoadBalancer(java.net.URI, Object)
and
reconstructURIWithServer(Server, java.net.URI)
methods to get the complete executable URI.protected int getDefaultPortFromScheme(java.lang.String scheme)
scheme
- from the vip address. null if not present.protected com.netflix.util.Pair<java.lang.String,java.lang.Integer> deriveHostAndPortFromVipAddress(java.lang.String vipAddress) throws java.net.URISyntaxException, com.netflix.client.ClientException
getServerFromLoadBalancer(java.net.URI, Object)
if there is no load balancer available and the request URI is incomplete. Sub classes can override this method
to be more accurate or throws ClientException if it does not want to support virtual address to be the
same as physical server address.
The virtual address is used by certain load balancers to filter the servers of the same function to form the server pool.
java.net.URISyntaxException
com.netflix.client.ClientException
public Server getServerFromLoadBalancer(@Nullable java.net.URI original, @Nullable java.lang.Object loadBalancerKey) throws com.netflix.client.ClientException
original
- Original URI passed from callercom.netflix.client.ClientException
public java.net.URI reconstructURIWithServer(Server server, java.net.URI original)
protected int getRetriesNextServer(com.netflix.client.config.IClientConfig overriddenClientConfig)
public final ServerStats getServerStats(Server server)
protected int getNumberRetriesOnSameServer(com.netflix.client.config.IClientConfig overriddenClientConfig)
public boolean handleSameServerRetry(Server server, int currentRetryCount, int maxRetries, java.lang.Throwable e)
public final com.netflix.client.RetryHandler getRetryHandler()
public final void setRetryHandler(com.netflix.client.RetryHandler retryHandler)
public final boolean isOkToRetryOnAllOperations()
public final void setOkToRetryOnAllOperations(boolean okToRetryOnAllOperations)