`
y806839048
  • 浏览: 1117039 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

从CAP理论中分析Eureka与zookeeper的区别

阅读更多

著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。

3.1 Zookeeper保证CP

当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~ 120s, 且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得zk集群失去master节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。

 

3.2 Eureka保证AP

Eureka看明白了这一点,因此在设计时就优先保证可用性。Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况: 
1. Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务 
2. Eureka仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用) 
3. 当网络稳定时,当前实例新的注册信息会被同步到其它节点中

因此, Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样使整个注册服务瘫痪。

 
分享到:
评论

相关推荐

    Eureka与Zookeeper对比

    著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P是分布式系统中必须保证的,因此我们只能在A和C中间进行权衡。 Zookeeper保证的是CP(一致性和分区...

    SpringCloud-Eureka

    知识点二:Eureka 和 Zookeeper 的区别 Eureka 和 Zookeeper 都是注册中心,但是它们有所不同。Eureka 注重服务的可用性,而 Zookeeper 注重数据的一致性。CAP 原则是 Zookeeper 的一个重要特点,它指的是在一个...

    Zookeeper和Eureka哪个更好?

    在讨论Zookeeper和Eureka之前,我们需要了解CAP理论。CAP理论指出,在分布式系统中,不可能同时满足一致性、可用性和分区容错性这三个需求。CAP理论将分布式系统的需求归纳为三个方面: * 一致性(Consistency):...

    Eureka学习讲义大全.pdf

    **Eureka与Zookeeper的区别** Eureka和Zookeeper在设计哲学上有显著的不同,主要体现在CAP原则的应用上。CAP原则是分布式系统中的一条基本理论,它指出在一致性(Consistency)、可用性(Availability)和分区容错...

    Eureka 源码分析

    **著名的CAP理论**指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Tolerance of network Partition)三者不可兼得。在网络分区发生时,必须做出选择。Eureka的设计决策倾向于AP模型,...

    为什么不使用ZooKeeper构建云平台发现服务.pdf

    【描述】:本文探讨了为何在云环境中不建议使用ZooKeeper作为服务发现服务的原因,通过对比ZooKeeper与Eureka,从云平台特点、CAP原理及运维角度分析了两者的优缺点。 【标签】:技术 【正文】: 在构建云平台...

    JAVA面试题(Zookeeper、消息队列、分布式等最新的也有)

    在Java面试中,候选人需要展示对分布式系统设计原则的理解,如CAP定理(一致性、可用性和分区容错性之间的权衡),以及BASE理论(基本可用、软状态和最终一致性)。还要熟悉分布式服务发现、负载均衡、分布式事务...

    SpringCloud最新2021年面试题,高级面试题及附答案解析.md

    1. **CAP 理论角度**:ZooKeeper 遵循 CP(Consistency-Persistence),即在分布式系统中保证数据的一致性和持久性;而 Eureka 遵循 AP(Availability-Partition tolerance),即在分布式系统中保证系统的可用性和...

    大型分布式网站架构设计与实践

    微服务架构、服务注册与发现(如Eureka、Zookeeper)、服务调用协议(如REST、gRPC)和服务熔断、限流(如Hystrix)等技术将在书中得到详述。 6. 容错与恢复:在分布式环境中,节点故障是常态。书中会介绍如何设计...

    1.分布式架构面试题汇总.zip

    为了减少对Eureka服务器的频繁访问,Eureka客户端会缓存从服务器获取的服务信息。当服务实例发生变化时,Eureka服务器会通过推送或拉取的方式更新客户端的缓存。 7. 服务健康检查 Eureka虽然依赖心跳机制来检测服务...

    1分布式理论、架构设计(自定义RPC).zip

    分布式理论与架构设计是现代大型互联网系统的核心组成部分,它们涉及到如何将复杂的业务逻辑拆分成多个独立的服务,并通过网络进行通信,以实现高可用性、可扩展性和高性能。自定义RPC(Remote Procedure Call)框架...

    分布式服务框架 分布式系统概念与设计 原书第5版 分布式服务框架原理与实践_李林锋著

    1. 服务发现与注册:服务发现机制使得服务消费者可以动态找到服务提供者,如使用Eureka、Zookeeper或Consul等工具。 2. 负载均衡:通过负载均衡策略(如轮询、随机、最少连接等)将请求分发到不同的服务实例,提升...

    分布式开发的一些分析

    在分布式开发中,一致性模型也非常重要,例如CAP理论(一致性、可用性和分区容忍性)和Paxos算法。理解这些理论可以帮助我们设计出更健壮的分布式服务。 另外,服务发现与治理是分布式系统中的重要一环。服务注册与...

    《分布式系统开发实战》-课件.zip

    3. **CAP的变种:BASE理论**:在大型互联网系统中,往往采用BASE(Basically Available, Soft State, Eventually Consistent)理论,牺牲强一致性以换取高可用性和分区容忍性。 4. **分布式一致性算法**:如Paxos、...

    深入浅出分布式技术原理 教程 下载 下载2.zip

    3. **分布式一致性与CAP理论**:深入探讨分布式系统中的一致性模型,包括强一致性、弱一致性、最终一致性等。同时,会介绍CAP理论,即在分布式系统中不可能同时满足一致性、可用性和分区容忍性,理解何时以及如何...

    大规模分布式存储系统:原理解析与架构实战,分布式服务框架原理与实践_李林锋著

    此外,作者李林锋可能还会分享实际项目中的案例分析,阐述如何将理论应用于实践中,以解决实际问题,提升系统的稳定性和效率。这些书籍对于IT从业者,尤其是希望深入理解分布式系统和微服务架构的开发者来说,是非常...

    高级操作系统课件(分布式操作系统)

    7. **分布式数据库**:分析分布式数据库如Cassandra、MongoDB和Google Bigtable的工作原理,探讨分布式事务处理和CAP理论。 8. **容错与恢复机制**:理解分布式系统中的错误检测、故障恢复策略,如心跳检测、租约...

    微服务架构专题-SpringBoot.pptx

    - **ACID、CAP、Base理论**:在理解分布式事务时,需要了解ACID(原子性、一致性、隔离性、持久性)、CAP(一致性、可用性、分区容错性)和Base(基本可用、软状态、最终一致性)理论。 - **Zookeeper基础组件...

    C#分布式开发源码实例

    6. **状态管理和一致性**:学习CAP定理,理解分布式系统中的数据一致性问题,以及如何使用分布式锁、队列和事件驱动等机制来管理状态。 7. **测试与监控**:学会使用如Postman、WireShark等工具进行接口测试,以及...

Global site tag (gtag.js) - Google Analytics