#14 计算机基础 中等

CAP 理论是什么?在数据系统里如何理解一致性?

CAP一致性分布式

🎯 考察意图

系统设计与数仓同步常被问到。考察分布式基本盘,能连到「主从延迟/对账」。

📐 回答框架

  1. C/A/P 定义与「网络分区时的取舍」。
  2. 澄清:不是永远只能三角选二的口号理解。
  3. 联系实践:缓存、主从、数仓最终一致。

💬 参考答案(口述版)

CAP:在分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍(Partition tolerance)难以在发生网络分区时同时完美满足。现代分布式系统必须假设 P 可能发生,因此关键时刻往往在 C 与 A 间权衡。

更细的一致性光谱:
- 强一致:读必看到最新写(体验简单,成本高)
- 最终一致:短期可能旧,但约定时间内收敛(缓存、主从复制常见)

数据工作中的映射:
- 业务库主从延迟 → 读从库可能旧
- 数仓 T+1 → 天生最终一致,靠分区就绪与对账
- 指标服务:要声明「数据截至时间」避免假强一致

回答避免背诵「只能三选二」教条,强调场景化取舍与用户可读的数据新鲜度。

🔍 关键词

分区容忍最终一致主从延迟新鲜度

💭 面试官可能的追问

追问 1:BASE 是什么?

Basically Available、Soft state、Eventually consistent,面向高可用的柔性一致思路,和传统 ACID 强事务相对。

⚠️ 常见踩坑

  • 把 CAP 的 C 和 ACID 的 C 混为一谈
  • 宣称系统「同时满足 CAP」却说不清降级策略

🧠 记忆锚点

有分区时要在一致与可用间权衡;对数人要声明数据新鲜度。