自我保护机制
Eureka的自我保护机制是为了防止误杀服务。Eureka注册中心和服务都有发生故障的可能。如果Eureka Server注册中心发生故障,那么Eureka Client服务就有可能不能正常续约,而这个时候,服务是正常的,但是注册中心会将超过90秒未续约的服务剔除,造成误杀服务的情况。
Eureka Server通过判断是否存在大量续约失败的服务,从而确定是否开启自我保护。默认情况下,Eureka Server配置的自我保护阀值是0.85,如果Eureka Server运行期间根据心跳比例接收到的服务续约低于阀值,则Eureka Server开启自我保护,不再剔除注册列表的信息。
但是,如果在Eureka Server保护期间,可能会发生服务下线的情况,此时Eureka Server维护的服务清单就不那么准确了,此时可以关闭保护机制,确保服务中心不可用的服务实例被及时剔除。
默认情况下,Eureka Server自我保护是开启的,如果需要关闭,则可以在配置文件中添加下列代码:
eureka:
server:
enable-self-preservation: false