https://juejin.cn/post/6961201114343538724
CAP理论
什么是CAP?
- C代表Consistency(一致性)一致性是指所有服务节点在同一时刻的数据是完全一致的
- A代表Availability(可用性)可用性是指所有的请求都必须得到响应
- P代表Partition tolerance(分区容错性)分区容错性是指分布式系统的某个服务节点网络分区故障的时候,仍然能够对外提供满足服务
在任何分布式系统中,都不能同时满足CAP,而分区容错性时必须要保证的,所以C、A只能二选一
CA:单点集群,满足一致性和可用性,但是在可扩展性上不是很强大。 CP(Zookeeper/consul):满足一致性,分区容忍性的系统,通常性能不是特别高。 AP(Eureka):满足一致性,分区容忍必的系统,通常性能不是特别高。
CAP理论关注粒度是数据,而不是系统的整体设计策略
为什么C和A不能同时满足?
如果要保证一致性的话,那么某个服务节点对某条数据进行写操作时,其他数据是锁定读写的,只有等写操作完成后,完成了数据同步,才能放开,在这个锁定的期间,该数据对于其他服务节点是不可用的,所以无法保证该数据的可用性
反之,如果要保证可用性的话,那么在一个节点进行写操作的时候,其他节点就不能锁定,可能此时一个其他节点在请求获取该条数据,所以可能其他节点读取到的是旧数据,就无法保证一致性
- Zookeeper能够保证CP
- Eureka能够保证AP
- Nacos支持CP和AP模式切换
各个服务注册中心对比
Spring Cloud支持的注册中心有zookeeper、Eureka、Nacos、Consul。
标签:可用性,分区,CAP,容错性,一致性,节点 From: https://www.cnblogs.com/zqlmianshi/p/17553388.html