背景: 由于 Eureka 拥有自我保护机制, 当其注册表里服务因为网络或其他原因出现故障而关停时, Eureka 不会剔除服务注册, 而是等待其修复这是 AP 的一种实现
为了让其有精准的 CP 健康检查, 可以采取让其剔除不健康节点
server 端:
- eureka.server.enable-self-preservation//(设为 false, 关闭自我保护主要)
- eureka.server.eviction-interval-timer-in-ms// 清理间隔 (单位毫秒, 默认是 60*1000)
client 端:
- eureka.client.healthcheck.enabled = true// 开启健康检查 (需要 spring-boot-starter-actuator 依赖)
- eureka.instance.lease-renewal-interval-in-seconds =10// 租期更新时间间隔 (默认 30 秒)
- eureka.instance.lease-expiration-duration-in-seconds =30// 租期到期时间 (默认 90 秒)
示例:
server 端配置:
- eureka:
- server:
- enableSelfPreservation: false
- evictionIntervalTimerInMs: 4000
client 配置:
- eureka:
- instance:
- leaseRenewalIntervalInSeconds: 10
- leaseExpirationDurationInSeconds: 30
注意: 更改 Eureka 更新频率将打破服务器的自我保护功能
来源: http://www.bubuko.com/infodetail-2518324.html