zoukankan      html  css  js  c++  java
  • zookeeper和Eureka的区别

    RDBMS==>(MySql,Oracle,SqlServer等关系型数据库)遵循的原则是:ACID原则

    A:Atomicity 原子性

    C:Consistency 一致性

    I:Isolation 独立性

    D:Durability 持久性

    NoSql==>    (redis,Mogodb等非关系型数据库)遵循的原则是:CAP原则

    C:Consistency 强一致性

    A:  Availability 可用性

    P:Partition Tolerance分区容错性

    分布式领域有一个很著名的CAP定理:

    C:Consistency 数据一致性

    A:Availability 服务可用性

    P:Partition Tolerance 分区容错性(服务对网络分区故障的容错性)

    任何分布式系统只能保证两个

    CAP理论也就是说在分布式存储系统中,最多只能实现以上两点。

    而由于当前网络延迟故障会导致丢包等问题,所以我们分区容错性是必须实现的。也就是NoSqL数据库P肯定要有,我们只能在一致性和可用性中进行选择,没有Nosql数据库能同时保证三点。(==>AP 或者 CP)

    我觉得A:Availability 也很重要 要我选择 我会选择AP优先于CP 但是也要看具体的需求场景

    回到问题

    ureka和Zookeeper就是CAP定理中的实现,Eureka(保证AP),Zookeeper(保证CP)。

    ureka的各个节点都是对等的,失去其中任何一个 不影响服务的AP

    Zookeeper是主从关系master-slave的,当主节点挂掉,需要选出来新的主节点。需要耗费时间,这期间A:Availability是不能保证的(这里有一个重要点 Zookeeper 的选举机制)

    总结:

    Zookeeper的设计理念就是分布式协调服务,保证数据(配置数据,状态数据)在多个服务系统之间保证一致性,这也不难看出Zookeeper是属于CP特性(Zookeeper的核心算法是Zab,保证分布式系统下,数据如何在多个服务之间保证数据同步)。Eureka是吸取Zookeeper问题的经验,先保证可用性。

  • 相关阅读:
    boost编译中的细节问题
    geos编译问题
    安装pytorch的细节记录
    Qt学习-模仿Qt实现一个colorbutton
    BOOST内存管理-intrusive_ptr
    GEOS使用记录
    matlab添加永久路径
    关于浮点数的取值范围以及精度的问题
    vs2010中使用命令行参数
    sprintf fprintf EOF scanf 的返回值 深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/Jordandan/p/12198004.html
Copyright © 2011-2022 走看看