分布式系统知识体系:入门、理论协议、RPC、网关、锁、事务与 ID
分布式知识散、名词多,没有地图很容易学成一堆孤立的术语。本文把本模块的文章按四条主线整理成一张学习地图,并给出面试导向与工程导向两种走法。
四条主线
理论线:多节点协作的取舍逻辑。 从分布式系统导论建立整体认知,再到 CAP 与 BASE 理解”分区发生时一致性与可用性如何取舍”;中心化与去中心化、拜占庭将军问题、Paxos/Raft/ZAB、Gossip、一致性哈希回答的是”谁来做决策、状态怎么传播、数据怎么分布”。这条线偏抽象,但它是理解 ZooKeeper、etcd、Kafka 设计的钥匙。
调用线:流量怎么进来、服务怎么互调。 RPC 专题解决服务之间的远程调用:动态代理、序列化、服务发现、负载均衡与容错;Dubbo 是一个完整的治理样本。API 网关与 Spring Cloud Gateway 处理南北向流量:路由、鉴权、限流、灰度。网关管入口,RPC 管内部,职责互补。
一致性线:跨节点写入的秩序。 分布式 ID(Snowflake、号段、Leaf)解决全局唯一标识;分布式锁(Redis、ZooKeeper、Fencing Token)解决跨节点互斥;分布式事务(TCC、Saga、本地消息表、事务消息)解决跨服务写入的一致性与补偿。这是业务系统里踩坑最密集的一条线。
组件线:可复用的协调基础设施。 配置中心(Apollo、Nacos)管配置的发布与推送;ZooKeeper 专题从 ZNode、Watcher 讲到 ZAB 与 Curator 实战,是理解注册中心与协调服务的具体样本。
建议的两种走法
面试导向:先读面试题总结建立考点清单,再按”导论 → CAP → RPC/Dubbo → ID/锁/事务”的顺序回溯专题,每条结论都要能配上原理和适用场景,而不是只背名词。
工程导向:从手头问题切入——服务调用出问题先读 RPC 与 Dubbo,遇到重复扣款读幂等与事务,遇到脑裂读锁与协调——再回头补理论线的体系。
无论哪种走法,每学完一条线都做一次输出测试:能否在两分钟内画清一次下单请求穿过网关、订单、库存、支付、消息队列的完整链路,并标注每一环可能怎么失败、靠什么兜底。画不出来,就回去重读对应专题。
使用注意
- 地图负责定位与串联,不能替代专题本身;只记目录会形成”什么都知道一点、什么都答不深”的假熟练。
- 四条线的交叉处才是重点:锁依赖协调语义,事务受 CAP 取舍约束,ID 的分片基因影响路由——能串起交叉点才算入门。
- 理论不要抢跑:在没遇到过一致性问题之前硬啃 Paxos,留存率极低;让工程痛点牵引理论阅读。
小结
- 分布式知识可按理论、调用、一致性、组件四条线组织,每条线内部有明确的递进关系。
- 先建地图再钻专题:面试重”结论 + 原理 + 场景”,工程重”问题驱动”。
- 检验标准始终如一:能否完整推演一条跨服务链路的失败场景与兜底方案。

