问题描述
在Eureka的维护网页上,出现如下提示信息。
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
原因
Spring Cloud Eureka自我保护机制。Eureka Server在运行期间,会统计心跳失败的比例在15分钟内是否低于85%,如果出现低于的情况,Eureka Server会将当前的实例注册信息保护起来,让这些实例不会过期,尽可能保护这些注册信息。
解决方案
排查应用的心跳情况,恢复心跳即可。
本地调试很容易触发该提示,可以使用eureka.server.enable-self-preservation参数来关闭保护机制,以确保注册中心可以将不可用的实例正确剔除。