
Eureka服务提供者启动后向 Eureka 注册Eureka Server 会将注册信息同步给其他 Eureka Server。服务消费者从 Eureka 获取服务提供者地址然后会将服务提供者地址缓存到本地。当 Eureka 发现服务器提供者不可用时则将服务置为 DOWN 状态并把 DOWN 状态发送给服务消费者。服务提供者启动后会周期性地向 Eureka 发送心跳Eureka 在一定时间未收到心跳则认为服务瘫痪并注销该服务。Zookeeper是一个分布式的应用程序协调服务。Eureka 和 Zookeeper 都可以充当服务注册中心的角色。CAP1、C一致性2、A可用性3、P分区容错性分布式系统不可能同时满足C、A、P但是分布式系统必须满足P所以必须在C和A之间做出权衡。Zookeeper保证CP可以接受注册中心返回的是过期的注册信息但不能接受服务不可用即服务注册功能对可用性的要求要高于一致性。但是在 Zookeeper 中当 master 节点与其他节点失去联系时剩余节点会重新进行 leader 选举。在选举期间整个 Zookeeper 集群都是不可用的这就导致在选举期间注册服务瘫痪。所以Zookeeper 可以保证数据的一致性但不能保证可用性。Eureka保证APEureka 优先保证服务的可用性。Eureka 集群的各节点是平等的部分节点瘫痪不会影响其他节点的工作。这就保证了可用性。青蛙客服系统https://download.csdn.net/download/look4liming/93326820