SpringCloud-Erueka和Zookeeper以及Consul的区别(Day4)

ErueKa,Zookeeper,Consul区别

组件名 开发语言 CAP 服务健康检查 对外暴露接口 SpringCloud集成 原生Web界面
Eureka Java AP 可配支持 HTTP 已集成
Zookeeper Java CP 支持 客户端 已集成
Consul Go CP 支持 HTTP/DNS 已集成

CAP理论

  • C : Consistency (强一致性)
  • A : Availability (可用性)
  • P : Partition tolearnce (分区容错性)
CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足。

SpringCloud-Erueka和Zookeeper以及Consul的区别(Day4)

AP架构(Eureka)

当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。结论:违背了一致性C的要求,只满足可用性和分区容错,即AP。

CP架构(ZooKeeper/Consul)

当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性。结论:违背了可用性A的要求,只满足一致性和分区容错,即CP。
上一篇:源码分析七大设计原则之迪米特法则


下一篇:文件管理基础命令之二