注:红色标记是常用配置。
eureka服务器:每隔60s会进行剔除(过期实例)任务,90s服务实例失效(超时)的时间.
eureka客户端:心跳任务:服务实例每隔30s一次心跳.
缓存任务:定时每30s从Eureka Server拉取服务注册信息的间隔时间
拉取erureka服务器列表:每隔300s执行一次。
配置参数 | 默认值 | 说明 |
服务注册中心配置 | Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean | |
eureka.server.enable-self-preservation | true | 是否开启自我保护,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除 |
eureka.server.renewal-percent-threshold | 0.85 | 自我保护续约百分比阀值因子。如果实际续约数小于续约数阀值,则开启自我保护 |
eureka.server.renewal-thresholdupdate-interval-ms | 15 * 60 * 1000 | 续约数阀值更新频率。(默认15分钟) |
eureka.server.peer-eureka-nodes-update-interval-ms | 10 * 60 * 1000 | Eureka Server节点更新频率。(默认10分钟) |
eureka.server.enable-replicated-request-compression | false | 是否启用复制请求压缩。 |
eureka.server.wait-timeIn-ms-when-sync-empty | 5 * 60 * 1000 | 当从其他节点同步实例信息为空时等待的时间。(默认5分钟) |
eureka.server.peer-node-connect-timeout-ms | 200 | 节点间连接的超时时间。 |
eureka.server.peer-node-read-timeout-ms | 200 | 节点间读取信息的超时时间。 |
eureka.server.peer-node-total-connections | 1000 | 节点间连接总数。 |
peer-node-total-connections-per-host | 500 | 单个节点间连接总数。 |
peer-node-connectionIdle-timeout-seconds | 30 | 节点间连接空闲超时时间。 |
eureka.server.retention-time-in-m-s-in-delta-queue | 3 * MINUTES | 增量队列的缓存时间。 |
eureka.server.delta-retention-timer-interval-in-ms | 30 * 1000 | 清理增量队列中过期的频率。 |
eureka.server.eviction-interval-timer-in-ms | 60 * 1000 | 剔除(过期实例)任务频率。(对应的类是AbstractInstanceRegistry的evict方法,服务端每60s有info日志输出) |
eureka.server.response-cache-auto-expiration-in-seconds | 180 | 注册列表缓存超时时间(当注册列表没有变化时) |
eureka.server.response-cache-update-interval-ms | 30 * 1000 | 注册列表缓存更新频率。 |
eureka.server.use-read-only-response-cache | true | 是否开启注册列表的二级缓存。 |
eureka.server.disable-delta | false | 是否为client提供增量信息。 |
eureka.server.max-threads-for-status-replication | 1 | 状态同步的最大线程数。 |
eureka.server.max-elementsIn-status-replication-pool | 10000 | 状态同步队列的最大容量。 |
eureka.server.sync-when-timestamp-differs | true | 当时间差异时是否同步。 |
eureka.server.registry-sync-retries | 0 | 注册信息同步重试次数。 |
eureka.server.registry-sync-retry-wait-ms | 30 * 1000 | 注册信息同步重试期间的时间间隔。 |
eureka.server.max-elementsIn-peer-replication-pool | 10000 | 节点间同步事件的最大容量。 |
eureka.server.min-threads-for-peer-replication | 5 | 节点间同步的最小线程数。 |
eureka.server.max-threads-for-peer-replication | 20 | 节点间同步的最大线程数。 |
eureka.server.eureka.server.max-time-for-replication | 30000 | 节点间同步的最大时间,单位为毫秒。 |
eureka.server.disable-delta-for-remote-regions | false | 是否启用远程区域增量。 |
eureka.server.remote-region-connect-timeout-ms | 1000 | 远程区域连接超时时间。 |
eureka.server.remote-region-read-timeout-ms | 1000 | 远程区域读取超时时间。 |
eureka.server.remote-region-total-connections | 1000 | 远程区域最大连接数 |
eureka.server.remote-region-total-connections-per-host | 500 | 远程区域单机连接数 |
eureka.server.remote-region-connection-idle-timeout-seconds | 30 | 远程区域连接空闲超时时间。 |
eureka.server.remote-region-registry-fetch-interval | 30 | 远程区域注册信息拉取频率。 |
eureka.server.remote-region-fetch-thread-pool-size | 20 | 远程区域注册信息线程数。 |
服务实例类配置 |
| 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-enabled | true | 是否开启非安全端口通讯 |
eureka.instance.secure-port-enabled | false | 是否开启安全端口通讯 |
eureka.instance.virtual-host-name | unknown | 虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。 |
eureka.instance.secure-virtual-host-name = unknown | unknown | 安全虚拟主机名,首先获取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.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则需要使用绝对路径配置 |
eureka.instance.health-check-url |
| 健康检查页面的URL,绝对路径 |
服务注册类配置 |
| Bean类:org.springframework.cloud.netflix.eureka.EurekaClientConfigBean |
eureka.client.enabled | true | 是否启用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-bound | 10 | cacheRefreshExecutord的再次执行的最大延迟倍数。默认最大延迟时间=10 *eureka.client.registryFetchIntervalSeconds |
eureka.client.eureka-service-url-poll-interval-seconds | 300 | 拉取Eureka Server地址的间隔时间(Eureka Server有可能增减) |
eureka.client.proxy-port | null | Eureka Server的代理端口 |
eureka.client.proxy-host | null | Eureka Server的代理主机名 |
eureka.client.proxy-user-name | Eureka Server的代理用户名 | |
eureka.client.proxy-password | Eureka 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-impl | Eureka 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-size | 2 | 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-bound | 10 | 心跳执行器在续约过程中超时后的再次执行续约的最大延迟倍数。默认最大延迟时间=10 * eureka.instance.leaseRenewalIntervalInSeconds |
eureka.client.instance-info-replication-interval-seconds | 30 | 定时将实例信息(如果变化了)复制到Eureka Server的间隔时间。(InstanceInfoReplicator线程) |
eureka.client.initial-instance-info-replication-interval-seconds | 40 | 首次将实例信息复制到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.region | us-east-1 | 实例所属区域。 |
eureka.client.prefer-same-zone-eureka | true | 是否使用相同Zone下的Eureka server。 |
eureka.client.log-delta-diff | false | 是否记录Eureka Server和Eureka Client之间注册信息的差异 |
eureka.client.disable-delta | false | 是否开启增量同步注册信息。 |
eureka.client.etch-remote-regions-registry | null | 获取注册服务的远程地区,以逗号隔开。 |
eureka.client.availability-zones | 可用分区列表。用逗号隔开。 | |
eureka.client.filter-only-up-instances | true | 获取实例时是否过滤,只保留UP状态的实例 |
eureka.client.should-unregister-on-shutdown | true | 是否在停止服务的时候向Eureka Server发起Cancel指令。 Cancel:服务下线 |
eureka.client.should-enforce-registration-atInit | false | 是否在初始化过程中注册服务。 |
1.eureka服务端默认60s有一次剔除,对应的类是AbstractInstanceRegistry的evict方法有对应日志输出:AbstractInstanceRegistry : Running the evict task with compensationTime 14ms ;
服务端配置
2.断点了eureka每5分钟获取服务器的地址方法;截图的值如下:
1.instance服务实例类配置
3.client对象服务注册类配置