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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。