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.

这句话的意思是,Eureka可能会声明已经不存在的实例。刷新数小于阈值时,为了安全起见不会剔除过期实例。

首先说一下Eureka的默认阈值为:85%

比如目前有10个微服务,只有8个有心跳反应时,(8/10=80%<85%)Eureka就会开启保护机制,过期的实例不会立马剔除。并且出这个紧急警告,在搭建Eureka Server时,比如我们搭建了2个Eureka Server,并且禁止自注册,Eureka Server自身算一个服务,那么其中任意一个Eureka,只能获得一个心跳,1/2=50%。那么也会出现这个警告。

这种情况如果未禁止自注册的话是不会出现的,因为本机不会有什么网络问题,肯定是百分百。

博主这里测过,只有当我开启7台及以上的Eureka Server服务(关闭Eureka Server自注册)的时候,才不会出这个警告。

因为    5/6≈83.3%<85%       6/7≈85.7%>85%。

那么当不想有这个红色警告是,本机自测可以关闭Eureka保护配置。生产环境下不要关。

在application.yml文件中配置:

  server:
    enable-self-preservation: false

在application.properties文件中配置:

eureka.server.enable-self-preservation=false

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐