EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER

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 server 在一定的时候内,没有接受到某个微服务的心跳,就会注销该实例,默认时间是90秒。但是当网络发生故障的情况下,微服务和EurekaServer就无法通讯,这样就很危险,因为微服务本身是健康的,此时不应该注销该服务,而EurekaServer通过注销该服务来达到自我保护机制,当网络健康的时候,EurekaServer就会自动退出自我保护机制。

这个时候,再次将客户端微服务启动后,就会发现微服务已经被注销了。就像一开始在EurekaServer的Application列表,可以看到3个微服务,过了一会,就变成2个,且提示上面的红色文字。

这里的DS Replicas显示是集群信息,这里注册到peers,过一段时间,网络环境好一点或者刚刚被注销的微服务、重启EurekaServer服务,可以被搜索到的时候,我们刷新下,服务出现了

当然EurekaServer也可以关闭自我保护机制

server端,关闭注册中心自我保护机制

eureka.server..enable-self-preservation: false

注册中心清理间隔,单位为毫秒

enruka.server.evication-interval-timer-in-ms: 10000

client端,开启健康检查(需要spring-boot-starter-actuator依赖)

eureka.client.healthcheck.enabled:true

设置租期更新时间,默认30秒

eureka.instance.lease-renewal-interval-seconds=10

设置租期到期时间,默认90秒

eureka.instance.lease-expiration-duration-in-seconds=15

添加配置后,EurekaServer会提示THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

意思是自我保护机制已经关闭,如果碰到网络故障,将不会保护过期实例

生产环境建议使用默认配置

 

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值