Skip to content

分布式基础★

分布式系统的挑战、CAP/BASE、本分组地图。

Updated View as Markdown
For humans

分布式基础

分布式系统:多台机器协作,对外像一台。面试主线:挑战是什么、CAP 怎么权衡、一致性怎么选。

分布式三大挑战

挑战 说明
网络不可靠 延迟、丢包、分区(唯一确定的事是“不确定”)
时钟不一致 各机器时钟漂移(不能用本地时间排序)
状态分散 无共享内存,一致性靠协议

CAP 定理

CAP: 三选二, 但 P 是必选

  • C(一致性):所有节点同时看到相同数据
  • A(可用性):请求总能得到响应(不保证数据最新)
  • P(分区容错):网络分区时系统仍工作

核心认知:网络分区必然发生,P 必须选。分区时在 C 和 A 之间二选一:

  • CP:分区时拒绝服务保一致(etcd、ZooKeeper)
  • AP:分区时继续服务,恢复后合并(Cassandra、DNS)

面试话术:“CAP 三选二”是误导,正确说法是分区时 C/A 二选一(无分区时三者可兼得)。

BASE

  • Basically Available:基本可用(降级、限流)
  • Soft state:状态可临时不一致
  • Eventually consistent:最终一致

BASE 是 AP 路线的工程化:用最终一致换可用性。典型:缓存 + 数据库(见缓存一致性篇)、异步消息(见 MQ 篇)。

本分组地图

  • 一致性模型:从强到弱的谱系
  • Raft / Paxos / ZAB:共识协议
  • 分布式 ID 与哈希:基础组件

面试追问

  1. CAP 是什么? 一致性、可用性、分区容错。分区必选,分区时 C/A 二选一
  2. CP 和 AP 例子? CP:etcd/ZK(分区拒写保一致);AP:Cassandra/DNS(分区继续服务)
  3. BASE 是什么? 基本可用 + 软状态 + 最终一致。AP 路线的工程实践
  4. 为什么 P 必选? 网络分区无法避免(不是“如果”是“何时”)。不选 P 的分布式不存在
  5. 最终一致怎么实现? 异步复制 + 重试 + 补偿(消息队列、对账)。见各篇
Navigation

Type to search…

↑↓ navigate↵ selectEsc close