|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.netflix.discovery.DefaultEurekaClientConfig
public class DefaultEurekaClientConfig
A default implementation of eureka client configuration as required by
EurekaClientConfig.
The information required for configuring eureka client is provided in a configuration file.The configuration file is searched for in the classpath with the name specified by the property eureka.client.props and with the suffix .properties. If the property is not specified, eureka-client.properties is assumed as the default.The properties that are looked up uses the namespace passed on to this class.
If the eureka.environment property is specified, additionally
eureka-client-
| Field Summary | |
|---|---|
static java.lang.String |
DEFAULT_ZONE
|
| Constructor Summary | |
|---|---|
DefaultEurekaClientConfig()
|
|
DefaultEurekaClientConfig(java.lang.String namespace)
|
|
| Method Summary | |
|---|---|
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 |
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 EurekaClientConfig.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 EurekaClientConfig.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 URLs 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 EurekaClientConfig.getEurekaServerServiceUrls(String). |
int |
getEurekaServiceUrlPollIntervalSeconds()
Indicates how often(in seconds) to poll for changes to eureka server information. |
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 |
getProxyPort()
Gets the proxy port to eureka server 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. |
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String DEFAULT_ZONE
| Constructor Detail |
|---|
public DefaultEurekaClientConfig()
public DefaultEurekaClientConfig(java.lang.String namespace)
| Method Detail |
|---|
public int getRegistryFetchIntervalSeconds()
EurekaClientConfig
getRegistryFetchIntervalSeconds in interface EurekaClientConfigpublic int getInstanceInfoReplicationIntervalSeconds()
EurekaClientConfig
getInstanceInfoReplicationIntervalSeconds in interface EurekaClientConfigpublic int getEurekaServiceUrlPollIntervalSeconds()
EurekaClientConfigEureka servers could be added or removed and this setting controls how soon the eureka clients should know about it.
getEurekaServiceUrlPollIntervalSeconds in interface EurekaClientConfigpublic java.lang.String getProxyHost()
EurekaClientConfig
getProxyHost in interface EurekaClientConfigpublic java.lang.String getProxyPort()
EurekaClientConfig
getProxyPort in interface EurekaClientConfigpublic boolean shouldGZipContent()
EurekaClientConfig
shouldGZipContent in interface EurekaClientConfigpublic int getEurekaServerReadTimeoutSeconds()
EurekaClientConfig
getEurekaServerReadTimeoutSeconds in interface EurekaClientConfigpublic int getEurekaServerConnectTimeoutSeconds()
EurekaClientConfig
Note that the connections in the client are pooled by
HttpClient and this setting affects the actual
connection creation and also the wait time to get the connection from the
pool.
getEurekaServerConnectTimeoutSeconds in interface EurekaClientConfigpublic java.lang.String getBackupRegistryImpl()
EurekaClientConfigBackupRegistry 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.
getBackupRegistryImpl in interface EurekaClientConfigBackupRegistry.public int getEurekaServerTotalConnections()
EurekaClientConfig
getEurekaServerTotalConnections in interface EurekaClientConfigpublic int getEurekaServerTotalConnectionsPerHost()
EurekaClientConfig
getEurekaServerTotalConnectionsPerHost in interface EurekaClientConfigpublic java.lang.String getEurekaServerURLContext()
EurekaClientConfigEurekaClientConfig.getEurekaServerServiceUrls(String).
The DNS mechanism is used when
EurekaClientConfig.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.
getEurekaServerURLContext in interface EurekaClientConfigURI of the eureka
server.public java.lang.String getEurekaServerPort()
EurekaClientConfigEurekaClientConfig.getEurekaServerServiceUrls(String).
The DNS mechanism is used when
EurekaClientConfig.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.
getEurekaServerPort in interface EurekaClientConfigpublic java.lang.String getEurekaServerDNSName()
EurekaClientConfigEurekaClientConfig.getEurekaServerServiceUrls(String).
The DNS mechanism is used when
EurekaClientConfig.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.
getEurekaServerDNSName in interface EurekaClientConfigpublic boolean shouldUseDnsForFetchingServiceUrls()
EurekaClientConfigEurekaClientConfig.getEurekaServiceUrlPollIntervalSeconds().
Alternatively, the service urls can be returned
EurekaClientConfig.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.
shouldUseDnsForFetchingServiceUrls in interface EurekaClientConfigpublic boolean shouldRegisterWithEureka()
EurekaClientConfigIn some cases, you do not want your instances to be discovered whereas you just want do discover other instances.
shouldRegisterWithEureka in interface EurekaClientConfigpublic boolean shouldPreferSameZoneEureka()
EurekaClientConfigIdeally 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 EurekaClientConfig.getRegistryFetchIntervalSeconds()
shouldPreferSameZoneEureka in interface EurekaClientConfigpublic boolean shouldLogDeltaDiff()
EurekaClientConfigEureka 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 EurekaClientConfig.getRegistryFetchIntervalSeconds()
shouldLogDeltaDiff in interface EurekaClientConfigpublic boolean shouldDisableDelta()
EurekaClientConfigNote 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 EurekaClientConfig.getRegistryFetchIntervalSeconds()
shouldDisableDelta in interface EurekaClientConfig@Nullable public java.lang.String fetchRegistryForRemoteRegions()
EurekaClientConfigEurekaClientConfig.getAvailabilityZones(String).
Failing to do so, will result in failure of discovery client startup.
fetchRegistryForRemoteRegions in interface EurekaClientConfignull if no remote region has to be fetched.public java.lang.String getRegion()
EurekaClientConfig
getRegion in interface EurekaClientConfigpublic java.lang.String[] getAvailabilityZones(java.lang.String region)
EurekaClientConfig
The changes are effective at runtime at the next registry fetch cycle as specified by EurekaClientConfig.getRegistryFetchIntervalSeconds()
getAvailabilityZones in interface EurekaClientConfigregion - the region where this instance is deployed.
public java.util.List<java.lang.String> getEurekaServerServiceUrls(java.lang.String myZone)
EurekaClientConfigURLs to communicate with eureka
server.
Typically the eureka server URLs 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 EurekaClientConfig.getEurekaServiceUrlPollIntervalSeconds()
getEurekaServerServiceUrls in interface EurekaClientConfigmyZone - the zone in which the instance is deployed.
public boolean shouldFilterOnlyUpInstances()
EurekaClientConfigInstanceInfo.InstanceStatus.UP states.
The changes are effective at runtime at the next registry fetch cycle as specified by EurekaClientConfig.getRegistryFetchIntervalSeconds()
shouldFilterOnlyUpInstances in interface EurekaClientConfigpublic int getEurekaConnectionIdleTimeoutSeconds()
EurekaClientConfigIn 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
getEurekaConnectionIdleTimeoutSeconds in interface EurekaClientConfigpublic boolean shouldFetchRegistry()
EurekaClientConfig
shouldFetchRegistry in interface EurekaClientConfigtrue if registry information has to be fetched, false otherwise.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||