1.全网最全Spring Cloud Eureka 常用配置及说明

注:红色标记是常用配置。

eureka服务器:每隔60s会进行剔除(过期实例)任务,90s服务实例失效(超时)的时间.

eureka客户端:心跳任务:服务实例每隔30s一次心跳.

                         缓存任务:定时每30s从Eureka Server拉取服务注册信息的间隔时间

                         拉取erureka服务器列表:每隔300s执行一次。

配置及说明
配置参数默认值说明
服务注册中心配置Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean
eureka.server.enable-self-preservationtrue是否开启自我保护,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除
eureka.server.renewal-percent-threshold0.85

自我保护续约百分比阀值因子。如果实际续约数小于续约数阀值,则开启自我保护

eureka.server.renewal-thresholdupdate-interval-ms 

15 * 60 * 1000续约数阀值更新频率。(默认15分钟)
eureka.server.peer-eureka-nodes-update-interval-ms 10 * 60 * 1000Eureka Server节点更新频率。(默认10分钟)
eureka.server.enable-replicated-request-compressionfalse是否启用复制请求压缩。
eureka.server.wait-timeIn-ms-when-sync-empty5 * 60 * 1000当从其他节点同步实例信息为空时等待的时间。(默认5分钟)
eureka.server.peer-node-connect-timeout-ms200节点间连接的超时时间。
eureka.server.peer-node-read-timeout-ms200节点间读取信息的超时时间。
eureka.server.peer-node-total-connections1000节点间连接总数。
peer-node-total-connections-per-host500单个节点间连接总数。
peer-node-connectionIdle-timeout-seconds30节点间连接空闲超时时间。
eureka.server.retention-time-in-m-s-in-delta-queue3 * MINUTES增量队列的缓存时间。
eureka.server.delta-retention-timer-interval-in-ms30 * 1000清理增量队列中过期的频率。

eureka.server.eviction-interval-timer-in-ms

60 * 1000

剔除(过期实例)任务频率。(对应的类是AbstractInstanceRegistry的evict方法,服务端每60s有info日志输出)

eureka.server.response-cache-auto-expiration-in-seconds180注册列表缓存超时时间(当注册列表没有变化时)
eureka.server.response-cache-update-interval-ms30 * 1000注册列表缓存更新频率。
eureka.server.use-read-only-response-cachetrue是否开启注册列表的二级缓存。
eureka.server.disable-deltafalse是否为client提供增量信息。
eureka.server.max-threads-for-status-replication1状态同步的最大线程数。
eureka.server.max-elementsIn-status-replication-pool10000状态同步队列的最大容量。

eureka.server.sync-when-timestamp-differs

true当时间差异时是否同步。
eureka.server.registry-sync-retries0注册信息同步重试次数。
eureka.server.registry-sync-retry-wait-ms30 * 1000注册信息同步重试期间的时间间隔。
eureka.server.max-elementsIn-peer-replication-pool10000节点间同步事件的最大容量。
eureka.server.min-threads-for-peer-replication5节点间同步的最小线程数。
eureka.server.max-threads-for-peer-replication20节点间同步的最大线程数。
eureka.server.eureka.server.max-time-for-replication30000节点间同步的最大时间,单位为毫秒。
eureka.server.disable-delta-for-remote-regionsfalse是否启用远程区域增量。
eureka.server.remote-region-connect-timeout-ms1000远程区域连接超时时间。
eureka.server.remote-region-read-timeout-ms1000远程区域读取超时时间。

eureka.server.remote-region-total-connections

1000远程区域最大连接数
eureka.server.remote-region-total-connections-per-host500远程区域单机连接数
eureka.server.remote-region-connection-idle-timeout-seconds30远程区域连接空闲超时时间。
eureka.server.remote-region-registry-fetch-interval30远程区域注册信息拉取频率。
eureka.server.remote-region-fetch-thread-pool-size20远程区域注册信息线程数。

服务实例类配置

  

Bean类:org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean         更多该类配置详解以及源码分析请点击这里

eureka.instance.prefer-ip-address

false

是否优先使用IP地址作为主机名的标识,不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了

eureka.instance.ip-address 属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址

eureka.instance.ip-address

  

IP地址(默认获取本机ip)

eureka.instance.instance-id注册到eureka上的唯一实例ID,不能与相同appname的其他实例重复。

eureka.instance.hostname

  

设置当前实例的主机名称(默认会去获取自己的主机名称,用户/info,/health检查  http://主机名:端口/ )

eureka.instance.app-group-name 应用组名

eureka.instance.appname

  unknown

服务名,默认取 spring.application.name 配置值,如果没有则为 unknown

eureka.instance.instance-enabled-onit 实例注册到Eureka上是,是否立刻开启通讯。有时候应用在准备好服务之前需要一些预处理。
eureka.instance.non-secure-port 80非安全的端口
eureka.instance.secure-port 443安全端口
eureka.instance.non-secure-port-enabledtrue是否开启非安全端口通讯
eureka.instance.secure-port-enabled false是否开启安全端口通讯
eureka.instance.virtual-host-name unknown虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。
eureka.instance.secure-virtual-host-name = unknownunknown安全虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。
eureka.instance.metadata-map实例元数据,可以供其他实例使用。比如spring-boot-admin在监控时,获取实例的上下文和端口。
eureka.instance.data-center-info 实例部署的数据中心。如AWS、MyOwn。

eureka.instance.lease-renewal-interval-in-seconds

30

定义服务续约任务(心跳)的调用间隔,单位:秒

eureka.instance.lease-expiration-duration-in-seconds

90

定义服务实例失效(超时)的时间,表示最大leaseExpirationDurationInSeconds秒后没有续约,Server就认为他不可用了,随之就会将其剔除。单位:秒

Eviction 服务剔除
在默认的情况下,当Eureka客户端连续90秒没有向Eureka服务器发送服务续约,即心跳,Eureka服务器会将该服务实例从服务注册列表删除,即服务剔除。

eureka.instance.status-page-url-path

/info

状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置

eureka.instance.status-page-url

  

状态页面的URL,绝对路径

eureka.instance.health-check-url-path

/health

健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置

{"description":"Composite Discovery Client","status":"UP","discoveryComposite":{"description":"Composite Discovery Client","status":"UP","discoveryClient":{"description":"Composite Discovery Client","status":"UP","services":[]},"eureka":{"description":"Remote status from Eureka server","status":"UNKNOWN","applications":{}}},"diskSpace":{"status":"UP","total":413524815872,"free":355938177024,"threshold":10485760},"hystrix":{"status":"UP"}}

eureka.instance.health-check-url

  

健康检查页面的URL,绝对路径

服务注册类配置

  

Bean类:org.springframework.cloud.netflix.eureka.EurekaClientConfigBean

eureka.client.enabledtrue是否启用Eureka client。

eureka.client.fetch-registery

true

检索服务(是否从Eureka Server拉取服务注册信息)(如果是服务端应该关闭)

eureka.client.registery-fetch-interval-seconds

30

定时从Eureka Server拉取服务注册信息的间隔时间,单位:秒

eureka.client.cache-refresh-executor-exponential-backOff-bound10cacheRefreshExecutord的再次执行的最大延迟倍数。默认最大延迟时间=10 *eureka.client.registryFetchIntervalSeconds
eureka.client.eureka-service-url-poll-interval-seconds300拉取Eureka Server地址的间隔时间(Eureka Server有可能增减)

eureka.client.proxy-port

nullEureka Server的代理端口
eureka.client.proxy-hostnullEureka Server的代理主机名
eureka.client.proxy-user-nameEureka Server的代理用户名
eureka.client.proxy-passwordEureka Server的代理密码

eureka.client.eureka-server-read-timeout-seconds

8

读取 Eureka Server 信息的超时时间,单位:秒

eureka.client.eureka-server-connect-timeout-seconds

5

连接 Eureka Server 的超时时间,单位:秒

eureka.client.backup-registry-implEureka Client第一次启动时获取服务注册信息的调用的回溯实现。Eureka Client启动时首次会检查有没有BackupRegistry的实现类,如果有实现类,则优先从这个实现类里获取服务注册信息。

eureka.client.eureka-server-total-connections

200

从Eureka 客户端到所有Eureka服务端的连接总数

eureka.client.eureka-server-total-connections-per-host

50

从Eureka客户端到每个Eureka服务主机的连接总数

eureka.client.eureka-connection-idle-timeout-seconds

30

Eureka 服务端连接空闲关闭时间,单位:秒

eureka.client.heartbeat-executor-thread-pool-size

2

心跳(续约)执行器线程池大小。(在discoverClient对象里)

eureka.client.cache-refresh-executor-thread-pool-size2

cacheRefreshExecutord的线程池大小(获取注册信息)(在discoverClient对象里)

eureka.client.service-url

  

Eureka Server的分区地址。默认添加了一个defualtZone。也就是最常用的配置,指定服务注册中心地址,类型为 HashMap,并设置有一组默认值,默认的Key为 defaultZone;默认的Value为 http://localhost:8761/eureka ,如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔。

如果服务注册中心加入了安全验证,这里配置的地址格式为: http://<username>:<password>@localhost:8761/eureka 其中 <username> 为安全校验的用户名;<password> 为该用户的密码

eureka.client.register-with-eureka

true

启动服务注册(将自己注册倒servce)

eureka.client.heartbeat-executor-exponential-backOff-bound10心跳执行器在续约过程中超时后的再次执行续约的最大延迟倍数。默认最大延迟时间=10 * eureka.instance.leaseRenewalIntervalInSeconds
eureka.client.instance-info-replication-interval-seconds30定时将实例信息(如果变化了)复制到Eureka Server的间隔时间。(InstanceInfoReplicator线程)
eureka.client.initial-instance-info-replication-interval-seconds40首次将实例信息复制到Eureka Server的延迟时间。(InstanceInfoReplicator线程)
eureka.client.eureka-server-u-r-l-context

当Eureka server的列表在DNS中时,Eureka Server的上下文路径。如http://xxxx/eureka。(默认每隔5分钟刷新eureka服务列表)

eureka.client.eureka-server-port当Eureka server的列表在DNS中时,Eureka Server的端口。
eureka.client.eureka-server-d-n-s-name当Eureka server的列表在DNS中时,且要通过DNSName获取Eureka Server列表时,DNS名字。
eureka.client.regionus-east-1

实例所属区域。

eureka.client.prefer-same-zone-eurekatrue是否使用相同Zone下的Eureka server。
eureka.client.log-delta-difffalse是否记录Eureka Server和Eureka Client之间注册信息的差异
eureka.client.disable-deltafalse是否开启增量同步注册信息。

eureka.client.etch-remote-regions-registry

null获取注册服务的远程地区,以逗号隔开。
eureka.client.availability-zones可用分区列表。用逗号隔开。

eureka.client.filter-only-up-instances

true

获取实例时是否过滤,只保留UP状态的实例

eureka.client.should-unregister-on-shutdowntrue

是否在停止服务的时候向Eureka Server发起Cancel指令。

Cancel:服务下线
Eureka客户端在程序关闭时向Eureka服务器发送取消请求。 发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:
DiscoveryManager.getInstance().shutdownComponent();

eureka.client.should-enforce-registration-atInitfalse是否在初始化过程中注册服务。

1.eureka服务端默认60s有一次剔除,对应的类是AbstractInstanceRegistry的evict方法有对应日志输出:AbstractInstanceRegistry  : Running the evict task with compensationTime 14ms ;

服务端配置

2.断点了eureka每5分钟获取服务器的地址方法;截图的值如下:

1.instance服务实例类配置

3.client对象服务注册类配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值