Spring Cloud Eureka 源码分析(零)配置参数详解

一.Spring Cloud Eureka配置参数详解

     先解释一下eureka的配置文件信息:

1.1  Eureka客户端配置属性:

       对应的配置类为:  EurekaClientConfigBeanhtml

      eureka.client.算法

 params 释义 paraphrase default value
enabled 代表eureka客户端是否启动 Flag to indicate that the Eureka client is enabled. true
registryFetchIntervalSeconds 从eureka服务获取注册信息的频率 /s Indicates how often(in seconds) to fetch the registry information from the eureka server 30s
initialInstanceInfoReplicationIntervalSeconds 服务启动后首次请求eureka注册中心的时间 Indicates how long initially (in seconds) to replicate instance info to the eureka server 40s
instanceInfoReplicationIntervalSeconds 服务启动后非首次请求eureka注册中心的时间频率 Indicates how often(in seconds) to replicate instance changes to be replicated to the eureka server 30s
eurekaServiceUrlPollIntervalSeconds 询问Eureka服务url信息变化的时间间隔 Indicates how often(in seconds) to poll for changes to eureka server information.Eureka servers could be added or removed and this setting controls how soon the eureka clients should know about it. 300s
eurekaServerReadTimeoutSeconds eureka须要超时读取以前须要等待的时间 Indicates how long to wait (in seconds) before a read from eureka server needs to timeout 8
eurekaServerConnectTimeoutSeconds eureka须要超时链接以前须要等待的时间 Indicates how long to wait (in seconds) before a connection to eureka server needs to timeout 5
backupRegistryImpl 获取实现了eureka客户端在第一次启动时读取注册表的信息做为回退选项的实现名称    
eurekaServerTotalConnections eureka客户端容许全部eureka服务器链接的总数目   200
eurekaServerTotalConnectionsPerHost eureka客户端容许eureka服务器主机链接的总数目   50
eurekaServerURLContext 表示eureka注册中心的路径,若是配置为eureka,则为http://x.x.x.x:x/eureka/,在eureka的配置文件中加入此配置表示eureka做为客户端向注册中心注册,从而构成eureka集群。此配置只有在eureka服务器ip地址列表是在DNS中才会用到,默认为null    
eurekaServerPort 获取eureka服务器的端口,此配置只有在eureka服务器ip地址列表是在DNS中才会用到   null
eurekaServerDNSName 获取要查询的DNS名称来得到eureka服务器,此配置只有在eureka服务器ip地址列表是在DNS中才会用到   null
region 获取实例所在的地区 Gets the region (used in AWS datacenters) where this instance resides. us-east-1
eurekaConnectionIdleTimeoutSeconds Eureka服务的http请求关闭以前其响应的时间   30
registryRefreshSingleVipAddress 此客户端只对一个单一的VIP注册表的信息感兴趣   null
heartbeatExecutorThreadPoolSize 心跳执行程序线程池的大小,默认为5   5
heartbeatExecutorExponentialBackOffBound 心跳执行程序回退相关的属性,是重试延迟的最大倍数值   10
cacheRefreshExecutorThreadPoolSize 执行程序缓存刷新线程池的大小   5
cacheRefreshExecutorExponentialBackOffBound 执行程序指数回退刷新的相关属性,是重试延迟的最大倍数值   10
serviceUrl 可用注册中心的地址列表,可配置多个用逗号分隔 Map of availability zone to list of fully qualified URLs to communicate with eureka server (defaultZone, http://localhost:8761/eureka )
gZipContent eureka注册表的内容是否被压缩,默认为true,而且是在最好的网络流量下被压缩   true
useDnsForFetchingServiceUrls eureka客户端是否应该使用DNS机制来获取eureka服务器的地址列表   false
registerWithEureka 实例是否在eureka服务器上注册本身的信息以供其余服务发现   true
preferSameZoneEureka 实例是否使用同一zone里的eureka服务器,默认为true,理想状态下,eureka客户端与服务端是在同一zone下   true
logDeltaDiff 记录eureka服务器和客户端之间在注册表的信息方面的差别   false
disableDelta      
fetchRemoteRegionsRegistry eureka服务注册表信息里的以逗号隔开的地区名单,若是不这样返回这些地区名单,则客户端启动将会出错   null
availabilityZones 获取实例所在的地区下可用性的区域列表,用逗号隔开。    
filterOnlyUpInstances 是否得到处于开启状态的实例的应用程序过滤以后的应用程序   true
fetchRegistry 是否获取eureka服务器注册表上的注册信息   true
dollarReplacement eureka服务器序列化/反序列化的信息中获取“$”符号的的替换字符串   _-
escapeCharReplacement eureka服务器序列化/反序列化的信息中获取“_”符号的的替换字符串   __
allowRedirects      
onDemandUpdateStatusChange 若是设置为true,客户端的状态更新将会点播更新到远程服务器上   true
encoderName 编码的配置,若是最新的编码是稳定的   null
decoderName 解码的配置,若是最新的解 码是稳定的   null
clientDataAccept      
proxyPort      
proxyHost      
proxyUserName      
proxyPassword      

1.2 Eureka服务实例属性

        对应配置类: EurekaInstanceConfigBeanspring

       pre = eureka.instance缓存

                       params                   释义 paraphrase default value
appname 服务应用的名字,同spring.application.name,会被后者覆盖 Get the name of the application to be registered with eureka. unknown
appGroupName 得到在eureka服务上注册的应用程序组的名字 Get the name of the application group to be registered with eureka.  
instanceEnabledOnit      
nonSecurePort   Get the non-secure port on which the instance should receive traffic. 80
sercurePort 获取该实例应该接收通讯的安全端口   443
NonSecurePortEnabled 该实例应该接收通讯的非安全端口是否启用   true
SecurePortEnabled 该实例应该接收通讯的安全端口是否启用   false
LeaseRenewalIntervalInSeconds eureka客户须要多长时间发送心跳给eureka服务器,代表它仍然活着   30s
LeaseExpirationDurationInSeconds Eureka服务器在接收到实例的最后一次发出的心跳后,须要等待多久才能够将此实例删除   90s
VirtualHostName 此实例定义的虚拟主机名,其余实例将经过使用虚拟主机名找到该实例    
SecureVirtualHostName 此实例定义的安全虚拟主机名   unknown
ASGName 与此实例相关联 AWS自动缩放组名称。此项配置是在AWS环境专门使用的实例启动,它已被用于流量停用后自动把一个实例退出服务。    
HostName 与此实例相关联的主机名,是其余实例能够用来进行请求的准确名称    
MetadataMap(*) 获取与此实例相关联的元数据(key,value)。这个信息被发送到eureka服务器,其余实例可使用    
DataCenterInfo(*) 该实例被部署在数据中心    
IpAddress 获取实例的ip地址    
StatusPageUrlPath 获取此实例状态页的URL路径,而后构造出主机名,安全端口等,如改成 /swagger-ui.html ,则从eureka主页可直接进去swagger接口文档;   /info
StatusPageUrl 获取此实例绝对状态页的URL路径,为其余服务提供信息时来找到这个实例的状态的路径   null
HomePageUrlPath 获取此实例的相关主页URL路径,而后构造出主机名,安全端口等    
HomePageUrl 获取此实例的绝对主页URL路径,为其余服务提供信息时使用的路径    
HealthCheckUrlPath 获取此实例的相对健康检查URL路径   /health
HealthCheckUrl     获取此实例的绝对健康检查URL路径
SecureHealthCheckUrl 获取此实例的绝对安全健康检查网页的URL路径   null
DefaultAddressResolutionOrder 获取实例的网络地址    
Namespace 获取用于查找属性的命名空间   eureka
hostname 主机名    
preferIpAddress ip地址是否优先于主机名被使用,   false

1.3 Eureka注册中心属性

       pre = eureka.server.安全

      一、AWSAccessId服务器

       获取aws访问的id,主要用于弹性ip绑定,此配置是用于aws上的,默认为null网络

       二、AWSSecretKey架构

       获取aws私有秘钥,主要用于弹性ip绑定,此配置是用于aws上的,默认为nullapp

       三、EIPBindRebindRetrieside

       获取服务器尝试绑定到候选的EIP的次数,默认为3

       四、EIPBindingRetryIntervalMsWhenUnbound(*)

       服务器检查ip绑定的时间间隔,单位为毫秒,默认为1 * 60 * 1000

       五、EIPBindingRetryIntervalMs

       与上面的是同一做用,仅仅是稳定状态检查,默认为5 * 60 * 1000

       六、EnableSelfPreservation

       自我保护模式,当出现出现网络分区、eureka在短期内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除,默认为true

       七、RenewalPercentThreshold(*)

       阈值因子,默认是0.85,若是阈值比最小值大,则自我保护模式开启

       八、RenewalThresholdUpdateIntervalMs

       阈值更新的时间间隔,单位为毫秒,默认为15 * 60 * 1000

       九、PeerEurekaNodesUpdateIntervalMs(*)

       集群里eureka节点的变化信息更新的时间间隔,单位为毫秒,默认为10 * 60 * 1000

       十、EnableReplicatedRequestCompression

       复制的数据在发送请求时是否被压缩,默认为false

       十一、NumberOfReplicationRetries

       获取集群里服务器尝试复制数据的次数,默认为5

       十二、PeerEurekaStatusRefreshTimeIntervalMs

       服务器节点的状态信息被更新的时间间隔,单位为毫秒,默认为30 * 1000

       1三、WaitTimeInMsWhenSyncEmpty(*)

       在Eureka服务器获取不到集群里对等服务器上的实例时,须要等待的时间,单位为毫秒,默认为1000 * 60 * 5

       1四、PeerNodeConnectTimeoutMs

       链接对等节点服务器复制的超时的时间,单位为毫秒,默认为200

       1五、PeerNodeReadTimeoutMs

       读取对等节点服务器复制的超时的时间,单位为毫秒,默认为200

       1六、PeerNodeTotalConnections

       获取对等节点上http链接的总数,默认为1000

       1七、PeerNodeTotalConnectionsPerHost(*)

       获取特定的对等节点上http链接的总数,默认为500

       1八、PeerNodeConnectionIdleTimeoutSeconds(*)

       http链接被清理以后服务器的空闲时间,默认为30秒

       1九、RetentionTimeInMSInDeltaQueue(*)

       客户端保持增量信息缓存的时间,从而保证不会丢失这些信息,单位为毫秒,默认为3 * 60 * 1000

       20、DeltaRetentionTimerIntervalInMs

       清理任务程序被唤醒的时间间隔,清理过时的增量信息,单位为毫秒,默认为30 * 1000

       2一、EvictionIntervalTimerInMs

       过时实例应该启动并运行的时间间隔,单位为毫秒,默认为60 * 1000

       2二、ASGQueryTimeoutMs(*)

       查询AWS上ASG(自动缩放组)信息的超时值,单位为毫秒,默认为300

       2三、ASGUpdateIntervalMs

       从AWS上更新ASG信息的时间间隔,单位为毫秒,默认为5 * 60 * 1000

       2四、ASGCacheExpiryTimeoutMs(*)

       缓存ASG信息的到期时间,单位为毫秒,默认为10 * 60 * 1000

       2五、ResponseCacheAutoExpirationInSeconds(*)

       当注册表信息被改变时,则其被保存在缓存中不失效的时间,默认为180秒

       2六、ResponseCacheUpdateIntervalMs(*)

       客户端的有效负载缓存应该更新的时间间隔,默认为30 * 1000毫秒

       2七、UseReadOnlyResponseCache(*)

       目前采用的是二级缓存策略,一个是读写高速缓存过时策略,另外一个没有过时只有只读缓存,默认为true,表示只读缓存

       2八、DisableDelta(*)

       增量信息是否能够提供给客户端看,默认为false

       2九、MaxIdleThreadInMinutesAgeForStatusReplication(*)

       状态复制线程能够保持存活的空闲时间,默认为10分钟

       30、MinThreadsForStatusReplication

       被用于状态复制的线程的最小数目,默认为1

       3一、MaxThreadsForStatusReplication

       被用于状态复制的线程的最大数目,默认为1

       3二、MaxElementsInStatusReplicationPool

       可容许的状态复制池备份复制事件的最大数量,默认为10000

       3三、SyncWhenTimestampDiffers

       当时间变化实例是否跟着同步,默认为true

       3四、RegistrySyncRetries

       当eureka服务器启动时尝试去获取集群里其余服务器上的注册信息的次数,默认为5

       3五、RegistrySyncRetryWaitMs

       当eureka服务器启动时获取其余服务器的注册信息失败时,会再次尝试获取,期间须要等待的时间,默认为30 * 1000毫秒

       3六、MaxElementsInPeerReplicationPool(*)

       复制池备份复制事件的最大数量,默认为10000

       3七、MaxIdleThreadAgeInMinutesForPeerReplication(*)

       复制线程能够保持存活的空闲时间,默认为15分钟

       3八、MinThreadsForPeerReplication(*)

       获取将被用于复制线程的最小数目,默认为5

       3九、MaxThreadsForPeerReplication

       获取将被用于复制线程的最大数目,默认为20

       40、MaxTimeForReplication(*)

       尝试在丢弃复制事件以前进行复制的时间,默认为30000毫秒

       4一、PrimeAwsReplicaConnections(*)

       对集群中服务器节点的链接是否应该准备,默认为true

       4二、DisableDeltaForRemoteRegions(*)

       增量信息是否能够提供给客户端或一些远程地区,默认为false

       4三、RemoteRegionConnectTimeoutMs(*)

       链接到对等远程地eureka节点的超时时间,默认为1000毫秒

       4四、RemoteRegionReadTimeoutMs(*)

       获取从远程地区eureka节点读取信息的超时时间,默认为1000毫秒

       4五、RemoteRegionTotalConnections

       获取远程地区对等节点上http链接的总数,默认为1000

       4六、RemoteRegionTotalConnectionsPerHost

       获取远程地区特定的对等节点上http链接的总数,默认为500

       4七、RemoteRegionConnectionIdleTimeoutSeconds

       http链接被清理以后远程地区服务器的空闲时间,默认为30秒

       4八、GZipContentFromRemoteRegion(*)

       eureka服务器中获取的内容是否在远程地区被压缩,默认为true

       4九、RemoteRegionUrlsWithName

       针对远程地区发现的网址域名的map

       50、RemoteRegionUrls

       远程地区的URL列表

       5一、RemoteRegionAppWhitelist(*)

       必须经过远程区域中检索的应用程序的列表

       5二、RemoteRegionRegistryFetchInterval

       从远程区域取出该注册表的信息的时间间隔,默认为30秒

       5三、RemoteRegionFetchThreadPoolSize

       用于执行远程区域注册表请求的线程池的大小,默认为20

       5四、RemoteRegionTrustStore

       用来合格请求远程区域注册表的信任存储文件,默认为空

       5五、RemoteRegionTrustStorePassword

       获取偏远地区信任存储文件的密码,默认为“changeit”

       5六、disableTransparentFallbackToOtherRegion(*)

       若是在远程区域本地没有实例运行,对于应用程序回退的旧行为是否被禁用, 默认为false

       5七、BatchReplication(*)

       表示集群节点之间的复制是否为了网络效率而进行批处理,默认为false

       5八、LogIdentityHeaders(*)

       Eureka服务器是否应该登陆clientAuthHeaders,默认为true

       5九、RateLimiterEnabled

       限流是否应启用或禁用,默认为false

       60、RateLimiterThrottleStandardClients

       是否对标准客户端进行限流,默认false

       6一、RateLimiterPrivilegedClients(*)

       认证的客户端列表,这里是除了标准的eureka Java客户端。

       6二、RateLimiterBurstSize(*)

       速率限制的burst size ,默认为10,这里用的是令牌桶算法

       6三、RateLimiterRegistryFetchAverageRate(*)

       速率限制器用的是令牌桶算法,此配置指定平均执行注册请求速率,默认为500

       6四、RateLimiterFullFetchAverageRate(*)

       速率限制器用的是令牌桶算法,此配置指定平均执行请求速率,默认为100

       6五、ListAutoScalingGroupsRoleName(*)

       用来描述从AWS第三帐户的自动缩放组中的角色名称,默认为“ListAutoScalingGroups”

       6六、JsonCodecName(*)

       若是没有设置默认的编解器将使用全JSON编解 器,获取的是编 码 器的类名称

       6七、XmlCodecName(*)

       若是没有设置默认的编解器将使用xml编解  器,获取的是编 码 器的类名称

       6八、BindingStrategy(*)

       获取配置绑定EIP或Route53的策略。

       6九、Route53DomainTTL(*)

       用于创建route53域的ttl,默认为301

       70、Route53BindRebindRetries(*)

       服务器尝试绑定到候选Route53域的次数,默认为3

       7一、Route53BindingRetryIntervalMs(*)

       服务器应该检查是否和Route53域绑定的时间间隔,默认为5 * 60 * 1000毫秒

       7二、Experimental(*)

       当尝试新功能迁移过程时,为了不配置API污染,相应的配置便可投入实验配置部分,默认为null

 

 

 

 

 

 

 

     部分属性翻译参考文章:微服务架构:Eureka参数配置项详解(最后一节懒得本身分析了,直接copy,哈哈,别打我)

相关文章
相关标签/搜索