分布式系统概述
什么是分布式系统
分布式系统研究的是多台计算机如何协同工作来完成单台计算机无法完成的任务。你使用的几乎所有大型互联网服务——搜索引擎、社交网络、电商、云存储——背后都是分布式系统。
为什么要学分布式系统
大规模系统的必修课。 当代 AI 训练需要数千块 GPU 协同工作,AI 推理服务需要在全球多个数据中心部署。
理解现代软件架构。 微服务、容器编排(Kubernetes)、消息队列、分布式数据库——这些技术的底层都是分布式系统的理论支撑。
面试高阶考点。 系统设计面试的核心就是分布式系统设计。
核心知识模块
分布式系统基础
- 定义与特征:资源共享、并发、无全局时钟、独立故障
- 系统架构:客户端-服务器、P2P、微服务
时间与时钟
- 时钟同步、逻辑时钟(Lamport 时钟、向量时钟)
复制与一致性
- 复制策略、一致性模型、CAP 定理、BASE 理论
共识算法
- Paxos、Raft、ZAB、两阶段提交
分布式数据存储
- 数据分区(Sharding)、分布式数据库、分布式文件系统
分布式计算
- MapReduce、Spark、分布式训练
怎么学
先读经典论文。 从 Google 三驾马车(GFS、MapReduce、Bigtable)开始。
做 MIT 6.824 实验。 实现 Raft 共识算法、基于 Raft 的 KV 存储。
用 Docker Compose 搭一个分布式集群。 动手部署 Redis Cluster 或 Kafka 集群。
本模块资源
| 资源 | 类型 | 说明 |
|---|---|---|
| MIT 6.824 | 课程 | MIT 分布式系统,实现 Raft |
| DDIA 分布式部分 | 教材 | 数据密集型应用系统设计-分布式章节 |
| Google 三驾马车 | 论文 | GFS、MapReduce、Bigtable 原论文 |