最新文章

神秘的 Eureka 自我保护

神秘的 Eureka 自我保护

本文翻译自The Mystery of Eureka Self-Preservation

根据CAP定理, Eureka是一个AP系统, 这就导致了在网络分区期间多个注册表中的信息不一致. 自我保护功能则是为了尽可能降低这种不一致.

自我保护的定义

自我保护(self preservation)是Eureka的一项功能, Eureka注册表在未收到实例的心跳情况超过一定阈值时停止驱逐过期的实例.

从一个健康的系统开始

把下面看成一个健康的系统

The healthy system — before encountering network partition

假设所有的微服务都处于健康的状态并成功注册到Eureka注册表中.

多个注册表间会同步注册表记录, 所有的微服务实例都处于UP状态. 假设实例2从注册中心发现里实例4, 并调用实例4上的服务.

突发网络分区

假设出现了网络分区, 系统变成下面的状态.

During network partition  -  enters self-preservation

由于网络分区, 实例4和5丢失了注册中心的连接, 但是实例2仍然可以连接到实例4. Eureka服务端因为没有收到实例4和5的心跳(超过一定时间后), 将他们驱逐. 然后Eureka服务端意识到突然丢失了超过15%(2/5)的心跳, 因此其进入自我保护模式