Eureka与Zookeeper的比较
CAP理论:一个分布式系统不可能同时满足C(一致性)、A(可用性)、P(分区容错性)
由于分区容错性是分布式系统中必须保证的,我们只能在AC之间权衡。
Zookeeper 保证 C P
在ZooKeeper 中,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进
行leader选举,但是问题在于,选举leader需要一定时间,且选举期间整个ZooKeeper集群都
是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得
ZooKeeper集群失去master节点是大概率事件,虽然服务最终能够恢复,但是在选举时间内
导致服务注册长期不可用是难以容忍的。
Eureka保证 A P
Eureka优先保证可用性,Eureka各个节点是平等的,某几个节点挂掉不会影响正常节点的
工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册
或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注
册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。
所以Eureka在网络故障导致部贷节点失去联系的情况下,只要有一个节点可用,那么注册和
查询服务就可以正常使用,而不会像zookeeper 那样使整个注册服务瘫痪,Eureka优先保证了可用性。