public interface EurekaClientConfig
Most of the required information is provided by the default configuration
DefaultEurekaClientConfig
. The users just need to provide the eureka
server service urls. The Eureka server service urls can be configured by 2
mechanisms
1) By registering the information in the DNS. 2) By specifying it in the
configuration.
DiscoveryClient
based on virtual hostname (also called
VIPAddress), the most common way of doing it or by other means to get the
information necessary to talk to other instances registered with
Eureka.
Note that all configurations are not effective at runtime unless and otherwise specified.
Modifier and Type | Method and Description |
---|---|
java.lang.String |
fetchRegistryForRemoteRegions()
Comma separated list of regions for which the eureka registry information will be fetched.
|
java.lang.String[] |
getAvailabilityZones(java.lang.String region)
Gets the list of availability zones (used in AWS data centers) for the
region in which this instance resides.
|
java.lang.String |
getBackupRegistryImpl()
Gets the name of the implementation which implements
BackupRegistry to fetch the registry information as a fall back
option for only the first time when the eureka client starts. |
int |
getCacheRefreshExecutorExponentialBackOffBound()
Cache refresh executor exponential back off related property.
|
int |
getCacheRefreshExecutorThreadPoolSize()
The thread pool size for the cacheRefreshExecutor to initialise with
|
java.lang.String |
getDollarReplacement()
Get a replacement string for Dollar sign
$ during serializing/deserializing information in eureka server. |
java.lang.String |
getEscapeCharReplacement()
Get a replacement string for underscore sign
_ during serializing/deserializing information in eureka server. |
int |
getEurekaConnectionIdleTimeoutSeconds()
Indicates how much time (in seconds) that the HTTP connections to eureka
server can stay idle before it can be closed.
|
int |
getEurekaServerConnectTimeoutSeconds()
Indicates how long to wait (in seconds) before a connection to eureka
server needs to timeout.
|
java.lang.String |
getEurekaServerDNSName()
Gets the DNS name to be queried to get the list of eureka servers.This
information is not required if the contract returns the service urls by
implementing
getEurekaServerServiceUrls(String) . |
java.lang.String |
getEurekaServerPort()
Gets the port to be used to construct the service url to contact
eureka server when the list of eureka servers come from the DNS.This
information is not required if the contract returns the service urls by
implementing
getEurekaServerServiceUrls(String) . |
int |
getEurekaServerReadTimeoutSeconds()
Indicates how long to wait (in seconds) before a read from eureka server
needs to timeout.
|
java.util.List<java.lang.String> |
getEurekaServerServiceUrls(java.lang.String myZone)
Gets the list of fully qualified
URL s to communicate with eureka
server. |
int |
getEurekaServerTotalConnections()
Gets the total number of connections that is allowed from eureka client
to all eureka servers.
|
int |
getEurekaServerTotalConnectionsPerHost()
Gets the total number of connections that is allowed from eureka client
to a eureka server host.
|
java.lang.String |
getEurekaServerURLContext()
Gets the URL context to be used to construct the service url to
contact eureka server when the list of eureka servers come from the
DNS.This information is not required if the contract returns the service
urls by implementing
getEurekaServerServiceUrls(String) . |
int |
getEurekaServiceUrlPollIntervalSeconds()
Indicates how often(in seconds) to poll for changes to eureka server
information.
|
int |
getHeartbeatExecutorExponentialBackOffBound()
Heartbeat executor exponential back off related property.
|
int |
getHeartbeatExecutorThreadPoolSize()
The thread pool size for the heartbeatExecutor to initialise with
|
int |
getInitialInstanceInfoReplicationIntervalSeconds()
Indicates how long initially (in seconds) to replicate instance info
to the eureka server
|
int |
getInstanceInfoReplicationIntervalSeconds()
Indicates how often(in seconds) to replicate instance changes to be
replicated to the eureka server.
|
java.lang.String |
getProxyHost()
Gets the proxy host to eureka server if any.
|
java.lang.String |
getProxyPassword()
Gets the proxy password if any.
|
java.lang.String |
getProxyPort()
Gets the proxy port to eureka server if any.
|
java.lang.String |
getProxyUserName()
Gets the proxy user name if any.
|
java.lang.String |
getRegion()
Gets the region (used in AWS datacenters) where this instance resides.
|
int |
getRegistryFetchIntervalSeconds()
Indicates how often(in seconds) to fetch the registry information from
the eureka server.
|
java.lang.String |
getRegistryRefreshSingleVipAddress()
Indicates whether the client is only interested in the registry information for a single VIP.
|
boolean |
shouldDisableDelta()
Indicates whether the eureka client should disable fetching of delta and
should rather resort to getting the full registry information.
|
boolean |
shouldFetchRegistry()
Indicates whether this client should fetch eureka registry information from eureka server.
|
boolean |
shouldFilterOnlyUpInstances()
Indicates whether to get the applications after filtering the
applications for instances with only
InstanceInfo.InstanceStatus.UP states. |
boolean |
shouldGZipContent()
Indicates whether the content fetched from eureka server has to be
compressed whenever it is supported by the server.
|
boolean |
shouldLogDeltaDiff()
Indicates whether to log differences between the eureka server and the
eureka client in terms of registry information.
|
boolean |
shouldPreferSameZoneEureka()
Indicates whether or not this instance should try to use the eureka
server in the same zone for latency and/or other reason.
|
boolean |
shouldRegisterWithEureka()
Indicates whether or not this instance should register its information
with eureka server for discovery by others.
|
boolean |
shouldUseDnsForFetchingServiceUrls()
Indicates whether the eureka client should use the DNS mechanism to fetch
a list of eureka servers to talk to.
|
int getRegistryFetchIntervalSeconds()
int getInstanceInfoReplicationIntervalSeconds()
int getInitialInstanceInfoReplicationIntervalSeconds()
int getEurekaServiceUrlPollIntervalSeconds()
Eureka servers could be added or removed and this setting controls how soon the eureka clients should know about it.
java.lang.String getProxyHost()
java.lang.String getProxyPort()
java.lang.String getProxyUserName()
java.lang.String getProxyPassword()
boolean shouldGZipContent()
int getEurekaServerReadTimeoutSeconds()
int getEurekaServerConnectTimeoutSeconds()
Note that the connections in the client are pooled by
org.apache.http.client.HttpClient
and this setting affects the actual
connection creation and also the wait time to get the connection from the
pool.
java.lang.String getBackupRegistryImpl()
BackupRegistry
to fetch the registry information as a fall back
option for only the first time when the eureka client starts.
This may be needed for applications which needs additional resiliency for registry information without which it cannot operate.
BackupRegistry
.int getEurekaServerTotalConnections()
int getEurekaServerTotalConnectionsPerHost()
java.lang.String getEurekaServerURLContext()
getEurekaServerServiceUrls(String)
.
The DNS mechanism is used when
shouldUseDnsForFetchingServiceUrls()
is set to true and
the eureka client expects the DNS to configured a certain way so that it
can fetch changing eureka servers dynamically.
The changes are effective at runtime.
URI
of the eureka
server.java.lang.String getEurekaServerPort()
getEurekaServerServiceUrls(String)
.
The DNS mechanism is used when
shouldUseDnsForFetchingServiceUrls()
is set to true and
the eureka client expects the DNS to configured a certain way so that it
can fetch changing eureka servers dynamically.
The changes are effective at runtime.
java.lang.String getEurekaServerDNSName()
getEurekaServerServiceUrls(String)
.
The DNS mechanism is used when
shouldUseDnsForFetchingServiceUrls()
is set to true and
the eureka client expects the DNS to configured a certain way so that it
can fetch changing eureka servers dynamically.
The changes are effective at runtime.
boolean shouldUseDnsForFetchingServiceUrls()
getEurekaServiceUrlPollIntervalSeconds()
.
Alternatively, the service urls can be returned
getEurekaServerServiceUrls(String)
, but the users should implement
their own mechanism to return the updated list in case of changes.
The changes are effective at runtime.
boolean shouldRegisterWithEureka()
In some cases, you do not want your instances to be discovered whereas you just want do discover other instances.
boolean shouldPreferSameZoneEureka()
Ideally eureka clients are configured to talk to servers in the same zone
The changes are effective at runtime at the next registry fetch cycle as specified by
getRegistryFetchIntervalSeconds()
boolean shouldLogDeltaDiff()
Eureka client tries to retrieve only delta changes from eureka server to minimize network traffic. After receiving the deltas, eureka client reconciles the information from the server to verify it has not missed out some information. Reconciliation failures could happen when the client has had network issues communicating to server.If the reconciliation fails, eureka client gets the full registry information.
While getting the full registry information, the eureka client can log the differences between the client and the server and this setting controls that.
The changes are effective at runtime at the next registry fetch cycle as specified by
getRegistryFetchIntervalSeconds()
boolean shouldDisableDelta()
Note that the delta fetches can reduce the traffic tremendously, because the rate of change with the eureka server is normally much lower than the rate of fetches.
The changes are effective at runtime at the next registry fetch cycle as specified by
getRegistryFetchIntervalSeconds()
@Nullable java.lang.String fetchRegistryForRemoteRegions()
getAvailabilityZones(String)
.
Failing to do so, will result in failure of discovery client startup.null
if no remote region has to be fetched.java.lang.String getRegion()
java.lang.String[] getAvailabilityZones(java.lang.String region)
The changes are effective at runtime at the next registry fetch cycle as specified by
getRegistryFetchIntervalSeconds()
region
- the region where this instance is deployed.java.util.List<java.lang.String> getEurekaServerServiceUrls(java.lang.String myZone)
URL
s to communicate with eureka
server.
Typically the eureka server URL
s carry protocol,host,port,context
and version information if any.
Example: http://ec2-256-156-243-129.compute-1.amazonaws.com:7001/eureka/v2/
The changes are effective at runtime at the next service url refresh cycle as specified by
getEurekaServiceUrlPollIntervalSeconds()
myZone
- the zone in which the instance is deployed.boolean shouldFilterOnlyUpInstances()
InstanceInfo.InstanceStatus.UP
states.
The changes are effective at runtime at the next registry fetch cycle as specified by
getRegistryFetchIntervalSeconds()
int getEurekaConnectionIdleTimeoutSeconds()
In the AWS environment, it is recommended that the values is 30 seconds or less, since the firewall cleans up the connection information after a few mins leaving the connection hanging in limbo
boolean shouldFetchRegistry()
true
if registry information has to be fetched, false
otherwise.@Nullable java.lang.String getRegistryRefreshSingleVipAddress()
null
if single VIP interest is not present.int getHeartbeatExecutorThreadPoolSize()
int getHeartbeatExecutorExponentialBackOffBound()
int getCacheRefreshExecutorThreadPoolSize()
int getCacheRefreshExecutorExponentialBackOffBound()
java.lang.String getDollarReplacement()
$
during serializing/deserializing information in eureka server.$
.java.lang.String getEscapeCharReplacement()
_
during serializing/deserializing information in eureka server._
.