如何解决Eureka Server不踢出已关停的节点的问题

如何解决Eureka Server不踢出已关停的节点的问题

在开发过程中,我们常常希望Eureka Server能够迅速有效地踢出已关停的节点,但是新手由于Eureka自我保护模式,以及心跳周期长的原因,常常会遇到Eureka Server不踢出已关停的节点的问题。解决方法如下:

(1) Eureka Server端:配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔。

1

2

eureka.server.enable-self-preservation # 设为false,关闭自我保护

eureka.server.eviction-interval-timer-in-ms # 清理间隔(单位毫秒,默认是60*1000)

(2) Eureka Client端:配置开启健康检查,并按需配置续约更新时间和到期时间。

1

2

3

eureka.client.healthcheck.enabled # 开启健康检查(需要spring-boot-starter-actuator依赖)

eureka.instance.lease-renewal-interval-in-seconds # 续约更新时间间隔(默认30秒)

eureka.instance.lease-expiration-duration-in-seconds # 续约到期时间(默认90秒)

示例:
服务器端配置:

eureka:
  server: 
    enable-self-preservation: false     #关闭保护机制,默认true
    eviction-interval-timer-in-ms: 4000 #剔除失效服务间隔,默认60000

客户端配置:

eureka:
  instance:
    prefer-ip-address: true
    #客户端向服务端发送心跳的时间间隔,单位为秒默认30
    lease-renewal-interval-in-seconds: 3
    #服务端收到最后一次心跳之后等待的时间上限,单位为秒,默认90
    lease-expiration-duration-in-seconds: 5
  client:
    registry-fetch-interval-seconds: 5 #刷新本地缓存时间,默认30
    healthcheck:
      #开启健康检查 (需要spring-boot-starter-actuator依赖)
      enabled: true 

注意:
更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。
详见:https://github.com/spring-cloud/spring-cloud-netflix/issues/373

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值