1、架构

CAP的核心是:一个分布式系统不可能同时满足,强一致性、可用行、分区容错性。

  • C (Consistency) 强一致性(数据)
  • A (Avaliability) 可用性
  • P (Partition tolerance) 分区容错性

image.png
分布式架构都必须满足P,因此只会有CP、AP。

1. AP架构 (Eureka)

image.png

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

    2. CP架构(zookeeper、consul)

    image.png

  3. 当网络分区后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。

  4. 结论:违背了C(一致性)的要求,只满足可用性和分区容错,即AP。

2、支持AP和CP模式切换(Nacos)

1. Nacos全景图

image.png

2. Nacos和其他注册中心特性对比

image.png

3. 何时选择使用何种模式?

C是所有节点在同一时间的数据是一致性的;而A是所有的请求都可用,因此:

  • 如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。
  • 如果需要存储/编辑服务级别、配置信息,那么CP是必须的,K8S和NDS服务就适用于CP模式。