美文网首页
CAP理论及Zookeeper和Eureka对比

CAP理论及Zookeeper和Eureka对比

作者: Java_Explorer | 来源:发表于2019-02-26 18:58 被阅读0次

分布式系统领域有个重要的CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,由麻省理工学院的Seth Gilbert和Nancy Lynch进行理论证明。该理论提到了分布式系统的CAP三个特性:

❑ Consistency:数据一致性,即数据在存在多副本的情况下,可能由于网络、机器故障、软件系统等问题导致数据写入部分副本成功,部分副本失败,进而造成副本之间数据不一致,存在冲突。满足一致性则要求对数据的更新操作成功之后,多副本的数据保持一致。
❑ Availability:在任何时候客户端对集群进行读写操作时,请求能够正常响应,即在一定的延时内完成。
❑ Partition Tolerance:分区容忍性,即发生通信故障的时候,整个集群被分割为多个无法相互通信的分区时,集群仍然可用。

对于分布式系统来说,一般网络条件相对不可控,出现网络分区是不可避免的,因此系统必须具备分区容忍性。在这个前提下分布式系统的设计则在AP及CP之间进行选择。不过不能理解为CAP三者之间必须三选二,它们三者之间不是对等和可以相互替换的。在分布式系统领域,P是一个客观存在的事实,不可绕过,所以P与AC之间不是对等关系。

对于ZooKeeper,它是"C"P的,之所以C加引号是因为ZooKeeper默认并不是严格的强一致,比如客户端A提交一个写操作,ZooKeeper在过半数节点操作成功之后就返回,此时假设客户端B的读操作请求到的是A写操作尚未同步到的节点,那么读取到的就不是客户端A写操作成功之后的数据。如果在使用的时候需要强一致,则需要在读取数据的时候先执行一下sync操作,即与leader节点先同步下数据,这样才能保证强一致。在极端的情况下发生网络分区的时候,如果leader节点不在non-quorum分区,那么对这个分区上节点的读写请求将会报错,无法满足Availability特性。

Eureka是在部署在AWS的背景下设计的,其设计者认为,在云端,特别是在大规模部署的情况下,失败是不可避免的,可能因为Eureka自身部署失败,注册的服务不可用,或者由于网络分区导致服务不可用,因此不能回避这个问题。要拥抱这个问题,就需要Eureka在网络分区的时候,还能够正常提供服务注册及发现功能,因此Eureka选择满足Availability这个特性。Peter Kelley在《Eureka! Why You Shouldn't Use ZooKeeper for Service Discovery》一文中指出,在实际生产实践中,服务注册及发现中心保留可用及过期的数据总比丢失掉可用的数据好。这样的话,应用实例的注册信息在集群的所有节点间并不是强一致的,这就需要客户端能够支持负载均衡及失败重试。在Netflix的生态中,由ribbon提供这个功能。

相关文章

  • CAP理论及Zookeeper和Eureka对比

    分布式系统领域有个重要的CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,由麻省理工学院的S...

  • 微服务相关

    基础理论 CAP 服务发现 和 服务注册 zookeeper eureka cap 服务容错 Failover C...

  • Zookeeper与Eureka区别

    都可以作为注册中心的Zookeeper和Eureka,想要理解两种注册中心的区别,首先要理解CAP理论。 CPA理...

  • Eureka

    Eureka是个基于内存的服务注册中心。 Eureka和zookeeper CAP理论,一个分布式系统不可能同时满...

  • (转)zookeeper与eureka对比

    zookeeper与eureka对比 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)...

  • 尚学堂106天总结+eureka

    1. Eureka架构图原理 2. 什么是CAP定理 3. ZooKeeper与Eureka的区别 4. ...

  • 2019-12-09

    Eureka和Zookeeper两个的区别 首先来说说CAP定理 指的是在一个分布式系统中, Consistenc...

  • ZooKeeper、Eureka对比

    简介 Eureka本身是Netflix开源的一款提供服务注册和发现的产品,并且提供了相应的Java封装。在它的实现...

  • ZooKeeper、Eureka对比

    简介 Eureka本身是Netflix开源的一款提供服务注册和发现的产品,并且提供了相应的Java封装。在它的实现...

  • Java面试问题,zookeeper 和 eureka 哪个更好

    你觉得 zookeeper 和 eureka 哪个更好?简单总结一下 zookeeper 和 eureka 之间的...

网友评论

      本文标题:CAP理论及Zookeeper和Eureka对比

      本文链接:https://www.haomeiwen.com/subject/vfezyqtx.html