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问题的经验,先保证可用性。

  • 相关阅读:
    ecstore前台模板变量处理
    MySQL慢查询日志总结
    Linux 操作MySQL常用命令行
    CGI、FastCGI和php-fpm的概念和区别
    sync实现windows与nginx主机端文件同步(参考文档)
    PHP实现四种基本排序算法
    http和https协议
    linux的计划任务
    php封装一个接口类
    mysql的常见面试问题
  • 原文地址:https://www.cnblogs.com/Jordandan/p/12198004.html
Copyright © 2011-2022 走看看