发布网友 发布时间:2023-10-13 02:19
共3个回答
热心网友 时间:2024-09-29 13:30
自我保护机制,Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致)。
解决办法:
添加如下配置,关闭自我保护
Eureka server application.yml
Service application.yml
Spring Cloud Eureka的自我保护机制:首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护。
热心网友 时间:2024-09-29 13:30
该状态持续很久,访问该服务也返回错误,但在注册中心界面,该服务却一直存在,且为UP状态,并且在大约十分钟后,出现一行红色大字: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.热心网友 时间:2024-09-29 13:30
楼上的回答确实有用,但是我有更简单的解决方法,不知道题主是不是在本地开发调试springcloud呢,我也一样,已经关闭但还是显示up状态。