1. Consul,Zookeeper,Eureka的异同点

名字 语言 CAP 服务健康检查 对外暴露接口 boot集成
Eureka Java AP(保证高可用) 可配支持 HTTP
Consul Go CP(保证数据一致) 支持 HTTP/DNS
Zookeeper Java CP(保证数据一致) 支持 客户端

CAP理论及Consul,Zookeeper,Eureka的异同点

  • CAP

    • C:COnsistency(强一致性)
    • A:Availability(可用性)
    • P:Partition tolerance(分区容错性)
  • CAO理论关注粒度是数据,而不是整体系统设计的

    • 核心理论
      • 一个分布式系统不可能同时很好的满足一致性,可用性,分区容错性这三个需求
      • 根据CAP原理将NoSql数据库分为满足CA原则,CP原则,AP原则的三大类
    • CA——单点集群,满足一致性,可用性的系统;扩展性不高
    • CP——满足一致性,分区容错性的系统;性能不高
    • AP——满足可用性,分区容错性的系统;对一致性要求低
  • 例如:淘宝

    • 淘宝京东:必须保证可用,必须是AP的,数据允许一定范围内出错,牺牲C数据一致来保证A可用;先保证系统不跨
  • AP架构

    • 违背一致性C的要求,只满足可用性和分区容错,保证系统可用;AP

CAP理论及Consul,Zookeeper,Eureka的异同点

  • 当没有出现网络分区时,系统A与B数据一致,X=1

  • 当系统A的X修改为2

  • 出现网络分区后,A与B之间的数据同步失败,系统B的X=1

  • 当客户端请求系统B时,为了保证可用性,此时系统B返回旧值

  • CP架构

    • 违背可用性A的要求,只满足一致性和分区容错,CP架构

CAP理论及Consul,Zookeeper,Eureka的异同点

  • 当没有出现网络分区时,系统A与B数据一致,X=1
  • 当系统A的X修改为2
  • 出现网络分区后,A与B之间的数据同步失败,系统B的X=1
  • 当客户端请求系统B时,为了保证一致性,此时系统B应该拒绝服务请求,返回错误码或者错误信息

相关文章: