为什么会产生Eureka的自我保护呢?

Eureka的自我保护机制主要是为了防止在网络分区故障(网络不稳定)的情况下,Eureka Server和Eureka Client之间的通信出现问题,而导致的服务注册信息错误删除。

在分布式系统中,网络故障是常有的事情,Eureka Server在短时间内丢失过多的客户端心跳时,会进入自我保护模式。在该模式下,Eureka Server会保护注册表中的信息,不再注销任何微服务,当网络故障恢复后,Eureka Server会自动退出保护模式。这样可以避免因为网络问题,导致服务实例被错误地从注册表中删除,从而使得其他服务无法找到该服务实例。

自我保护模式可以让集群更加健壮,但是我们在开发测试阶段,需要频繁地重启发布,如果触发了保护机制,则旧的服务实例没有被删除,这时请求有可能跑到旧的实例中,而该实例已经关闭了,这就会导致请求错误,影响开发测试。所以在实际使用过程中,我们需要根据具体情况来配置Eureka的自我保护机制。

发表评论

后才能评论