首页 > 技术文章 > Dubbo+ZK与Eureka注册中心比较

KevinStark 2019-03-15 10:02 原文

Eureka可以很好的应对网络故障导致部分节点失去联系的情况,而不会像zk那样因为选举导致整个集群不可用

  • dubbo + zk

当向注册中心查询服务注册列表时,可以容忍注册中心返回的是几分钟以前的注册信息,但是不能接受服务直接down掉不可用。服务注册功能对可用性的要求高于一致性。在zk选举的时候,整个集群不可用,这样就导致注册服务瘫痪,漫长的选举期间导致整个注册服务长期不可用

  • Eureka 的AP

在设计的时候优先保证可用性。eureka的各个节点都是平等的,几个节点down掉不会影响其他节点的提供注册和查询服务的功能。而Eureka的客户端在向牧歌Eureka注册如果链接失败,则会自动切换到其他节点,只要有一台Eureka正常工作,就能保证注册服务可用,只不过查询服务的结果可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内,85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况:

  1. Eureka不再从注册列表中移除因为长时间没有收到心跳的而过期的服务;
  2. Eureka仍然能够接收新的服务注册和查询请求,但不会同步到其他节点(保证当前节点依然可用);
  3. 当网络稳定时,当前实例新的注册信息会同步到其他节点;

推荐阅读