当产品服务掉线后,eureka中刷新后仍可看到此服务,服务状态不同步问题

示例图片点此服务实例,没有显示,说明provider已掉线,但eureka没有更新

情况出现原因是:Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 即会进入自我保护机制。
此时, Eureka 不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。

解决办法:在 eureka 的 application.yml中增加

eureka:
  server:
    enable-self-preservation: false       #设置为false表示关闭保护模式.在保护模式下,如因为网络或其它问题服务提供者掉线的话,eureka不会立即清空服务列表

可以适当通过设置eureka的清理时间,以及要注册的服务端的心跳间隔时间
eureka中设置eureka

   server:
    eviction-interval-timer-in-ms: 1000   #设置清理的间隔时间,ms (默认是60秒)
服务端中设置eureka
instance:
 lease-renewal-interval-in-seconds: 2 #设置心跳的时间间隔( default:30s )
 lease-expiration-duration-in-seconds: 5 #如果现在超过了5s的时间间隔( default: 90 s )

重启 eureka服务,以及服务端服务查看效果

猜你喜欢

转载自blog.csdn.net/weixin_45942124/article/details/109080595