SpringCloud-Erueka和Zookeeper以及Consul的区别(Day4)
ErueKa,Zookeeper,Consul区别组件名开发语言CAP服务健康检查对外暴露接口SpringCloud集成原生Web界面EurekaJavaAP可配支持HTTP已集成有ZookeeperJavaCP支持客户端已集成无ConsulGoCP支持HTTP/DNS已集成有CAP理论C : Consistency (强一致性)A : Availability (可用性)P : Partitio
·
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不可同时满足。
AP架构(Eureka)
当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。结论:违背了一致性C的要求,只满足可用性和分区容错,即AP。
CP架构(ZooKeeper/Consul)
当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性。结论:违背了可用性A的要求,只满足一致性和分区容错,即CP。
更多推荐
已为社区贡献18条内容
所有评论(0)