SpringCloud进阶–Eureka配置
文章内索引
[显示]
服务端参数设置
spring读取org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean类中的参数,作为EurekaServer的配置,服务端的前缀为eureka.server。
30
参数名 | 描述 | 默认值 |
aWSAccessId | AWS Access Id,这主要用于弹性IP绑定, 提供适当的AWS权限来绑定EIP。 | null |
aWSSecretKey | AWS的秘密密钥。这主要用于弹性IP的选择。访问id应该提供适当的AWS权限来绑定EIP。 | null |
eIPBindRebindRetries | 获取服务器应该尝试绑定到候选EIP的次数。这些更改在运行时是有效的。 | 3 |
getEIPBindingRetryIntervalMsWhenUnbound | 获取服务器应该检查EIP是否被绑定的时间间隔 | 1 * 60 * 1000 |
getEIPBindingRetryIntervalMs | 稳定状态检查下,获取服务器应该检查EIP是否被绑定的时间间隔。 | 5 * 60 * 1000 |
enableSelfPreservation | eurekaserver的健康检测,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除。 | true |
renewalPercentThreshold | 阈值因子,如果阈值比最小值大,则自我保护模式开启。#关于配置解释可以参考https://stackoverflow.com/questions/33921557/understanding-spring-cloud-eureka-server-self-preservation-and-renew-threshold
|
0.85 |
renewalThresholdUpdateIntervalMs | 阈值更新的时间间隔,单位为毫秒 | 15 * 60 * 1000 |
peerEurekaNodesUpdateIntervalMs | 集群里eureka节点的变化信息更新的时间间隔,单位为毫秒。用户可以使用Archaius提供的DNS机制或动态配置来动态更改信息。 | 10 * 60 * 1000 |
enableReplicatedRequestCompression | 复制的数据在发送请求时是否被压缩。 | false |
NumberOfReplicationRetries | 获取集群里服务器尝试复制数据的次数 | 6 |
peerEurekaStatusRefreshTimeIntervalMs | 服务器节点的状态信息被更新的时间间隔 | 30 * 1000 |
waitTimeInMsWhenSyncEmpty | 在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间,单位为毫秒. | 5 * 60 * 1000 |
peerNodeConnectTimeoutMs | 集群内对等节点连接超时时间 | 200 |
peerNodeReadTimeoutMs | 集群内对等节点读取超时时间 | 200 |
peerNodeTotalConnections | 读取对等节点服务器复制的超时的时间 | 1000 |
peerNodeTotalConnectionsPerHost | 获取对等节点上http连接的总数 | 500 |
peerNodeConnectionIdleTimeoutSeconds | http连接被清理之后服务器的空闲时间 | 30 |
retentionTimeInMSInDeltaQueue | 客户端保持增量信息缓存的时间,从而保证不会丢失这些信息,单位为毫秒 | 3 * 60 * 1000 |
evictionIntervalTimerInMs | 过期实例应该启动并运行的时间间隔 | 300 |
aSGQueryTimeoutMs | ASG查询超时时间 | |
aSGUpdateIntervalMs | ASG更新时间间隔 | 5min |
aSGCacheExpiryTimeoutMs | ASG缓存到期超时时间,默认大于asg update interval | 10min |
responseCacheAutoExpirationInSeconds | 当注册表信息被改变时,则其被保存在缓存中不失效的时间. | 180 s |
responseCacheUpdateIntervalMs | 客户端的有效负载缓存应该更新的时间间隔 | 30 |
useReadOnlyResponseCache | 目前采用的是二级缓存策略,一个是读写高速缓存过期策略,另一个没有过期只有只读缓存,默认为true,表示只读缓存 | true |
disableDelta | 增量信息是否可以提供给客户端看,默认为false | false |
MaxIdleThreadInMinutesAgeForStatusReplication | 状态复制线程可以保持存活的空闲时间,默认为10分钟 | 10min |
minThreadsForStatusReplication | 被用于状态复制的线程的最小数目 | 1 |
maxThreadsForStatusReplication | 被用于状态复制的线程的最大数目 | 1 |
maxElementsInStatusReplicationPool | 可允许的状态复制池备份复制事件的最大数量 | 10000 |
syncWhenTimestampDiffers | 当时间变化实例是否跟着同步 | true |
registrySyncRetries | 当eureka服务器启动时尝试去获取集群里其他服务器上的注册信息的次数 | 0 |
registrySyncRetryWaitMs | 当eureka服务器启动时获取其他服务器的注册信息失败时,会再次尝试获取,期间需要等待的时间 | 30*1000 |
maxElementsInPeerReplicationPool | 复制池备份复制事件的最大数量 | 10000 |
maxIdleThreadAgeInMinutesForPeerReplication | 复制线程可以保持存活的空闲时间 | 15 |
minThreadsForPeerReplication | 获取将被用于复制线程的最小数目 | 5 |
maxThreadsForPeerReplication | 获取将被用于复制线程的最大数目 | 20 |
maxTimeForReplication | 尝试在丢弃复制事件之前进行复制的时间 | 30000 |
primeAwsReplicaConnections | 对集群中服务器节点的连接是否应该准备 | True |
disableDeltaForRemoteRegions | 增量信息是否可以提供给客户端或一些远程地区 | False |
remoteRegionConnectTimeoutMs | 连接到对等远程地eureka节点的超时时间 | 1000 |
remoteRegionReadTimeoutMs | 获取从远程地区eureka节点读取信息的超时时间 | 1000 |
remoteRegionTotalConnections | 获取远程地区对等节点上http连接的总数 | 1000 |
remoteRegionTotalConnectionsPerHost | 获取远程地区特定的对等节点上http连接的总数 | 500 |
remoteRegionConnectionIdleTimeoutSeconds | http连接被清理之后远程地区服务器的空闲时间 | 30 |
gZipContentFromRemoteRegion | eureka服务器中获取的内容是否在远程地区被压缩 | True |
remoteRegionUrlsWithName | 针对远程地区发现的网址域名的map | New HashMap<>() |
remoteRegionUrls | 远程地区的URL列表 | Null |
remoteRegionAppWhitelist | 必须通过远程区域中检索的应用程序的列表 | Null |
remoteRegionRegistryFetchInterval | 从远程区域取出该注册表的信息的时间间隔 | 30 |
remoteRegionFetchThreadPoolSize | 用于执行远程区域注册表请求的线程池的大小 | 20 |
remoteRegionTrustStore | 用来合格请求远程区域注册表的信任存储文件 | “” |
remoteRegionTrustStorePassword | 获取偏远地区信任存储文件的密码 | Changeit |
disableTransparentFallbackToOtherRegion | 如果在远程区域本地没有实例运行,对于应用程序回退的旧行为是否被禁用 | False |
batchReplication | 表示集群节点之间的复制是否为了网络效率而进行批处理 | False |
rateLimiterEnabled | 限流是否应启用或禁用 | False |
rateLimiterThrottleStandardClients | 认证的客户端列表,这里是除了标准的eureka Java客户端。 | False |
rateLimiterPrivilegedClients | 认证的客户端列表,这里是除了标准的eureka Java客户端。 | Collections.emptySet(); |
rateLimiterBurstSize | 速率限制的burst size ,这里用的是令牌桶算法 | 10 |
rateLimiterRegistryFetchAverageRate | 速率限制器用的是令牌桶算法,此配置指定平均执行注册请求速率 | 500 |
rateLimiterFullFetchAverageRate | 速率限制器用的是令牌桶算法,此配置指定平均执行请求速率 | 100 |
logIdentityHeaders | Eureka服务器是否应该登录clientAuthHeaders | True |
listAutoScalingGroupsRoleName | 用来描述从AWS第三账户的自动缩放组中的角色名称 | ListAutoScalingGroups |
enableReplicatedRequestCompression | False | |
jsonCodecName | 如果没有设置默认的编解码器将使用全JSON编解码器,获取的是编码器的类名称 | Null |
xmlCodecName | 如果没有设置默认的编解码器将使用xml编解码器,获取的是编码器的类名称 | Null |
route53BindRebindRetries | 服务器尝试绑定到候选Route53域的次数 | 3 |
route53BindingRetryIntervalMs | 服务器应该检查是否和Route53域绑定的时间间隔 | 5min |
route53DomainTTL | 用于建立route53域的ttl | |
bindingStrategy | 获取配置绑定EIP或Route53的策略。 | EIP |
minAvailableInstancesForPeerReplication | 当尝试新功能迁移过程时,为了避免配置API污染,相应的配置即可投入实验配置部分 | -1 |
客户端参数配置
spring读取org.springframework.cloud.netflix.eureka.EurekaClientConfigBean类中的参数,作为EurekaClient的配置,服务端的前缀为eureka.client。
参数名 | 描述 | 默认值 |
registryFetchIntervalSeconds | 从eureka服务器注册表中获取注册信息的时间间隔(s) | 30 |
instanceInfoReplicationIntervalSeconds | 复制实例变化信息到eureka服务器所需要的时间间隔 | 30 |
initialInstanceInfoReplicationIntervalSeconds | 最初复制实例信息到eureka服务器所需的时间 | 40 |
eurekaServiceUrlPollIntervalSeconds | 询问Eureka服务url信息变化的时间间隔 | 5min |
proxyPort | 获取eureka服务的代理主机 | “” |
proxyHost | 获取eureka服务的代理端口 | “” |
proxyUserName | 获取eureka服务的代理用户名 | “” |
proxyPassword | 获取eureka服务的代理密码 | “” |
eurekaServerReadTimeoutSeconds | eureka需要超时读取之前需要等待的时间 | 8 |
eurekaServerConnectTimeoutSeconds | eureka需要超时连接之前需要等待的时间 | 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中才会用到 | “” |
eurekaServerPort | 获取eureka服务器的端口,此配置只有在eureka服务器ip地址列表是在DNS中才会用到 | “” |
eurekaServerDNSName | 获取要查询的DNS名称来获得eureka服务器,此配置只有在eureka服务器ip地址列表是在DNS中才会用到。 | “” |
region | 获取实例所在的地区。 | us-east-1 |
eurekaConnectionIdleTimeoutSeconds | Eureka服务的http请求关闭之前其响应的时间 | 30 |
registryRefreshSingleVipAddress | 此客户端只对一个单一的VIP注册表的信息感兴趣 | “” |
heartbeatExecutorThreadPoolSize | 心跳执行程序线程池的大小 | 2 |
heartbeatExecutorExponentialBackOffBound | 心跳执行程序回退相关的属性,是重试延迟的最大倍数值 | 10 |
cacheRefreshExecutorThreadPoolSize | 执行程序缓存刷新线程池的大小 | 2 |
cacheRefreshExecutorExponentialBackOffBound | 执行程序指数回退刷新的相关属性,是重试延迟的最大倍数值 | 10 |
serviceUrl | Eureka服务器的连接,默认为http://XXXX:X/eureka/,但是如果采用DNS方式获取服务地址,则不需要配置此设置。 | New HashMap<>() |
gZipContent | eureka注册表的内容是否被压缩,默认为true,并且是在最好的网络流量下被压缩 | true |
useDnsForFetchingServiceUrls | eureka客户端是否应该使用DNS机制来获取eureka服务器的地址列表 | false |
registerWithEureka | 实例是否在eureka服务器上注册自己的信息以供其他服务发现 | true |
preferSameZoneEureka | 实例是否使用同一zone里的eureka服务器,默认为true,理想状态下,eureka客户端与服务端是在同一zone下 | true |
logDeltaDiff | 是否记录eureka服务器和客户端之间在注册表的信息方面的差异 | False |
disableDelta | 指示“发现”客户端是否应该禁用delta的取回,而应该求助于获得完整的注册表信息。请注意,delta取回可以极大地减少流量,因为与“发现”服务器的更改速率通常比取回的速率要低得多。这些变化在运行时在下一次注册表获取周期中是有效的,这是由注册中心的terfetchinterval秒指定的 | false |
fetchRemoteRegionsRegistry | eureka服务注册表信息里的以逗号隔开的地区名单,如果不这样返回这些地区名单,则客户端启动将会出错。 | “” |
availabilityZones | 获取实例所在的地区下可用性的区域列表,用逗号隔开。 | New HashMap<>() |
filterOnlyUpInstances | 是否获得处于开启状态的实例的应用程序过滤之后的应用程序 | true |
fetchRegistry | 此客户端是否获取eureka服务器注册表上的注册信息 | true |
dollarReplacement | eureka服务器序列化/反序列化的信息中获取“$”符号的的替换字符串。 | “_-“ |
escapeCharReplacement | eureka服务器序列化/反序列化的信息中获取“_”符号的的替换字符串 | “__” |
allowRedirects | 服务器是否能够重定向客户端请求到备份服务器。 如果设置为false,服务器将直接处理请求,如果设置为true,它可能发送HTTP重定向到客户端。 | true |
onDemandUpdateStatusChange | 如果设置为true,客户端的状态更新将会点播更新到远程服务器上 | true |
encoderName | 这是一个短暂的编码器的配置,如果最新的编码器是稳定的,则可以去除 | “” |
decoderName | 这是一个短暂的解码器的配置,如果最新的解码器是稳定的,则可以去除, | “” |
clientDataAccept | 客户端数据接受的EurekaAccept名称 | EurekaAccept.full.name() |
EurekaInstance配置
spring读取org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean类中的参数,作为Eureka实例的配置,服务端的前缀为eureka.instance。
参数名 | 描述 | 默认值 |
hostInfo | org.springframework.cloud.commons.util.InetUtils.HostInfo,host的封装 | |
InetUtils | org.springframework.cloud.commons.util.InetUtils | |
appname | 获得在eureka服务上注册的应用程序的名字 | unknown |
appGroupName | 获得在eureka服务上注册的应用程序组的名字 | “” |
instanceEnabledOnit | 实例注册到eureka服务器时,是否开启通讯 | false |
nonSecurePort | 获取该实例应该接收通信的非安全端口 | 80 |
securePort | 获取该实例应该接收通信的安全端口 | 443 |
nonSecurePortEnabled | 该实例应该接收通信的非安全端口是否启用 | true |
securePortEnabled | 该实例应该接收通信的安全端口是否启用 | false |
leaseRenewalIntervalInSeconds | 服务刷新时间配置,每隔这个时间会主动心跳一次,通知服务自己还存在。 | 30 |
leaseExpirationDurationInSeconds | 服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除 | 90 |
virtualHostName | 此实例定义的虚拟主机名,其他实例将通过使用虚拟主机名找到该实例。 | unknown |
instanceId | 应用在注册中心中的唯一标识 | “” |
secureVirtualHostName | 此实例定义的安全虚拟主机名 | Unknown |
aSGName | 与此实例相关联 AWS自动缩放组名称。此项配置是在AWS环境专门使用的实例启动,它已被用于流量停用后自动把一个实例退出服务。 | “” |
metadataMap | 获取与此实例相关联的元数据(key,value)。这个信息被发送到eureka服务器,其他实例可以使用。 | new HashMap<>() |
dataCenterInfo | 返回数据中心这个实例被部署。这些信息被用来获取
如果实例被部署在AWS中,一些AWS特定的实例信息。
|
DataCenterInfo.Name.MyOwn |
ipAddress | 实例的ip地址, | “” |
statusPageUrlPath | 获取此实例状态页的URL路径,然后构造出主机名,安全端口等 | /info |
statusPageUrl | 获取此实例绝对状态页的URL路径,为其他服务提供信息时来找到这个实例的状态的路径 | Null |
homePageUrlPath | 获取此实例的相关主页URL路径,然后构造出主机名,安全端口等 | / |
homePageUrl | 获取此实例的绝对主页URL路径,为其他服务提供信息时使用的路径 | “” |
healthCheckUrlPath | 获取此实例的相对健康检查URL路径 | /health |
healthCheckUrl | 获取此实例的绝对健康检查URL路径 | “” |
secureHealthCheckUrl | 获取此实例的绝对安全健康检查网页的URL路径 | “” |
namespace | 获取用于查找属性的命名空间,默认为eureka | Erureka |
hostname | 与此实例相关联的主机名,是其他实例可以用来进行请求的准确名称 | “” |
preferIpAddress | Spring就会自动为我们获取第一个非回环IP地址,注册至服务。 | false |
initialStatus | 注册至eureka的初始状态 | up |
defaultAddressResolutionOrder | 获取实例的网络地址,默认为[] | [] |
environment | Eureka运行环境 org.springframework.core.env.Environment |
null |
©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!
发表评论