CAP理论

核心定位:分布式系统底层基石,弄懂CAP才能看懂Nacos、Zookeeper、Redis集群选型。

一、CAP 理论基础概念

1、定义

CAP 是分布式系统不可能三角,分别代表:一致性、可用性、分区容错性

核心结论:三者无法同时满足,分布式系统只能三选二。

2、三大特性详解

(1)C:Consistency 一致性

含义:集群中所有节点,同一时刻数据完全一致。

  • 客户端无论访问哪一个节点,获取的数据都是最新、一模一样

  • 写入数据后,必须同步完成才允许对外响应

  • 牺牲性能,保证数据准确

(2)A:Availability 可用性

含义:任何时刻请求都能正常响应,不会阻塞、不会报错。

  • 服务永不宕机、永不拒绝请求

  • 节点宕机不影响整体服务使用

  • 允许返回短暂旧数据,优先保证服务可用

(3)P:Partition Tolerance 分区容错性

含义:网络断网、延迟、节点隔离(网络分区),系统依旧可以正常运行。

  • 分布式部署多台服务器,网络故障必然发生

  • 分布式系统P必须保留,无法舍弃

二、CAP 三种组合(工程实际只有两种)

1、AP 模式(可用性 + 分区容错)

(1)特点

  • 舍弃强一致性

  • 保证高可用、永不宕机

  • 允许短暂数据不一致,最终自动同步(最终一致性)

(2)适用场景

服务注册、发现、心跳监控(可以短暂数据不一致)

(3)典型中间件

Nacos注册中心、Eureka、Redis集群

2、CP 模式(一致性 + 分区容错)

(1)特点

  • 舍弃部分可用性

  • 必须保证所有节点数据强一致

  • 网络异常、同步未完成时,拒绝响应、禁止写入

(2)适用场景

配置管理、元数据、分布式锁(数据绝对不能错乱)

(3)典型中间件

Nacos配置中心、Zookeeper

3、CA 模式(不存在)

  • 舍弃分区容错P

  • 只能单机部署,不属于分布式系统

  • 生产环境几乎不用

三、Nacos 结合 CAP 🔴

1、Nacos 注册中心 → AP

  • 采用 Distro协议

  • 去中心化、异步同步、高可用

  • 服务宁可数据延迟,不能宕机不可用

2、Nacos 配置中心 → CP

  • 采用 Raft协议

  • 主从选举、过半同步、强一致性

  • 配置宁可暂时不可改,不能错乱脏数据

四、高频面试对比总结

模式 取舍 特征 典型组件
AP 放弃强一致性 高可用、最终一致 Nacos注册、Eureka、Redis
CP 放弃部分可用性 强一致、阻塞容错 Nacos配置、Zookeeper

五、总结

  1. CAP理论是分布式不可能三角,包含一致性C、可用性A、分区容错性P,三者不能同时满足。

  2. 分布式系统网络分区不可避免,P必须保留,因此只能在AP和CP之间选择。

  3. AP舍弃强一致性,保证高可用、最终一致,适合服务注册发现;

  4. CP舍弃可用性,保证数据强一致,适合配置、分布式锁等敏感数据。

AP:能用就行,数据晚点一致没关系。

CP:数据必须对,暂时不能用也可以。