Eureka 的自我保护机制(Self-Preservation Mechanism)是 Netflix Eureka 设计中一个非常核心且经典的特性。它的主要目的是避免在发生网络异常(如网络分区、短暂的网络抖动)时,Eureka Server 盲目地注销(剔除)掉大量实际上仍然健康的微服务实例。 Eureka 的设计哲学是:“宁可保留错误的注册信息,也不盲目注销任何可能健康的微服务”。这也是 Eureka 遵循 CAP 定理中 AP(可用性 + 分区容错性) 原则的具体体现。 以下是对 Eureka 自我保护机制的详细解析: --- 1. 为什么需要自我保护机制? 正常情况下,微服务客户端(Eureka Client)会定期(默认每 30 秒)向 Eureka Server 发送心跳(Heartbeat),以证明自己还“活着”。如果 Eureka Server 在一定时间内(默认 90 秒)没有收到某个实例的心跳,就会将该实例从注册表中剔除。 但是,考虑以下场景: 网络分区/网络抖动: 微服务实例本身运行非常健康,但它与 Eureka Server 之间的网络突然出现了故障。 ...