CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
构建可扩展系统/课时/数据复制
RawBlame
课时目录12 节

构建可扩展系统

  1. 01可扩展性是什么
  2. 02CAP 定理
  3. 03无状态服务
  4. 04缓存与读扩展
  5. 05分片策略
  6. 06数据复制
  7. 07N+1 查询问题
  8. 08负载均衡
  9. 09背压与限流
  10. 10负载转移
  11. 11读写分离
  12. 12综合练习

数据复制

主从、多主、最终一致;对照 pg。

30 分钟

数据复制

分片解决「装不下」,复制(Replication) 解决「不够快、不够稳」:同一份数据在多个节点上维护副本,提升读吞吐与故障容忍。本课对照 postgresql-essentials 的主从架构,理解 building-for-scale 中的数据高可用。

学习目标

  • 区分主从复制、多主复制与无主(Quorum)模型
  • 理解同步复制与异步复制对延迟、一致性的影响
  • 描述故障切换(Failover)时可能的数据丢失窗口

核心概念

拓扑写入口典型场景
单主多从仅 PrimaryMySQL/PostgreSQL 主从
多主多节点可写跨地域写入,冲突解决复杂
无主Quorum 读写Cassandra、Dynamo 风格
写 → Primary →(异步/同步)→ Replica-1, Replica-2
读 → 可路由到 Replica(允许复制延迟)

同步 vs 异步:

  • 同步:从库确认才返回,RPO≈0,写延迟上升
  • 异步:主库先返回,从库追赶;主宕机可能丢最近几秒

最终一致:读从库可能看到旧数据。业务上可用 版本号、读己之写路由 缓解,详见 scale-read-write。

PostgreSQL 流复制 + Patroni 选主;MySQL GTID 便于 failover。Redis 主从 + Sentinel 是缓存层复制,见 redis-essentials。

与 CAP

复制延迟是 CAP 中 C 与 A 折衷的具象:强同步偏 CP,异步多副本偏 AP。结合 scale-cap 为业务选复制级别。

练习

  • 画出主从拓扑,标出写路径、读路径、failover 路径
  • 定义你的服务 RPO/RTO,据此选同步还是异步复制
  • 模拟:主库宕机 30 秒,异步从库 promotion 后可能丢哪些数据

小结

复制用副本换可用与读能力;同步保数据、异步保速度——failover 方案必须写进 runbook。

加载本节练习…
← 上一课分片策略
下一课 →
N+1 查询问题