1、架构
CAP的核心是:一个分布式系统不可能同时满足,强一致性、可用行、分区容错性。
- C (Consistency) 强一致性(数据)
- A (Avaliability) 可用性
- P (Partition tolerance) 分区容错性
1. AP架构 (Eureka)
- 当网络分区后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。
结论:违背了C(一致性)的要求,只满足可用性和分区容错,即CP。
2. CP架构(zookeeper、consul)
当网络分区后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。
- 结论:违背了C(一致性)的要求,只满足可用性和分区容错,即AP。
2、支持AP和CP模式切换(Nacos)
1. Nacos全景图
2. Nacos和其他注册中心特性对比
3. 何时选择使用何种模式?
C是所有节点在同一时间的数据是一致性的;而A是所有的请求都可用,因此:
- 如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。
- 如果需要存储/编辑服务级别、配置信息,那么CP是必须的,K8S和NDS服务就适用于CP模式。