###服务注册类配置

  • 指定注册中心 eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/ 配置值存储在HashMap中,默认的key为defaultZone,默认的value为http://localhost:8761/eureka/ 配置高可用注册中心时,可以配置多个注册中心,多个url使用逗号隔开 为服务注册中心添加安全校验时,http://:@localhost:1111/eurekaa/
  • 其他配置 下面整理了org.springframework.cloud.netflix.eureka.EurekaClient-ConfigBean中定义的常用配置参数以及对应的说明和默认值,这些参数均以eureka.client为前缀

参数名

说明

默认值

enable

启用eureka客户端

true

eureka.client.registry-fetch-interval-seconds

从eureka服务端获取注册信息的间隔时间,单位为秒

30

eureka.client.initial-instance-info-replication-interval-seconds

更新实例信息的变化到eureka服务端的间隔时间,单位为秒

30

eureka.client.initial-instance-info-replication-interval-seconds

初始化实例信息到eureka服务端的时间间隔,单位为秒

40

eureka.client.eureka-service-url-poll-interval-seconds

轮询eureka服务端地址更改的间隔时间,单位为秒。当我们与Spring Cloud Config配合,动态刷新Eureka的serviceURL地址时需要关注该参数

300

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

读取eureka信息超时时间,单位为秒

8

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

链接eureka超时时间,单位为秒

5

eureka.client.eureka-server-total-connections

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

200

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

从eureka客户端到每个eureka主机的连接总数

50

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

eureka服务器连接的空闲关闭时间,单位为秒

30

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

心跳连接池的初始化线程数

2

eureka.client.heartbeat-executor-exponential-back-off-bound

心跳超时重试延迟时间的最大乘数值

10

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

缓存刷新线程池的初始化线程数

2

eureka.client.cache-refresh-executor-exponential-back-off-bound=

缓存刷新重试延迟时间的最大乘值

10

eureka.client.use-dns-for-fetching-service-urls

使用dns来获取eureka服务端的serviceUrl

false

eureka.client.register-with-eureka

是否要将自身的实例信息注册到eureka服务端

true

eureka.client.prefer-same-zone-eureka

是否偏好使用处于相同zone的eureka服务端

true

eureka.client.filter-only-up-instances=

获取实例时是否过滤,仅保留up状态的实例

true

eureka.client.fetch-registry

是否从eureka服务端获取注册信息

true

###服务实例类配置

可以通过org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean的源码来获取详细内容,这些配置信息都是以eureka.instance为前缀。

  • 实例名配置 区分同一个服务中不同实例的唯一标识。 eureka.instance.instanceId 在springcloud中的默认规则:${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}} 对于实例名的命名规则可以通过eureka.instance.instanceId参数进行配置 如:eureka.instance.instanceId=${spirng.applicaiton.name}:${random.int}
  • 端点配置 在InstanceInfo中的一些URL配置信息,比如homePageUrl,statusPageUrl,healthCheckUrl分别代表了应用主页的URL、状态页的URL、健康检查的URL。其中状态也和健康检查的URL在spring Cloud Eureka中默认使用spirng-boot-actuator模块提供的/info断点和/health端点。 可以通过 eureka.instance.statusPageUrlPath=/hello/info eureka.instance.healthCheckUrlPath=/hello/checkhealth 来修改页面路径
  • 健康检测 在没有引入spring-cloud-actuator模块的情况下,服务实例的健康检测是通过客户端心跳的方式来实现的。默认的心跳实现方式可以实现检查客户端的进程是否正常运作,但却无法保证客户端应用能够正常提供服务,比如数据库,缓存,消息等连接无法使用。 这个时候就需要引入spring-cloud-actuator模块,并配置eureka.client.healthcheck.enable=true。
  • 其他配置

参数名

说明

默认值

eureka.instance.prefer-ip-address

是否优先使用IP地址作为主机名的标识

false

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

Eureka客户端想服务端发送心跳的时间间隔,单位为秒

30

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

Eureka服务端在收到最后一次心跳之后的等待时间的时间上限,单位为秒。超过该时间之后服务端会将该服务实例从服务清单中剔除,从而禁止服务调用请求被发送到该实例上

90

eureka.instance.appname

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

eureka.instance.virtual-host-name

主机名,不配置的时候将根据操作系统的主机名来获取