服务注册类配置
- 指定注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
配置值存储在HashMap中,默认的key为defaultZone,默认的value为http://localhost:8761/eureka/
配置高可用注册中心时,可以配置多个注册中心,多个url使用逗号隔开
为服务注册中心添加安全校验时,http://<username>:<password>@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 | 主机名,不配置的时候将根据操作系统的主机名来获取 |
网友评论