第6章 复制集:高可用的正反面


第 6 章 · 复制集:高可用的正反面

章节摘要:复制集(Replica Set)是一主多从、自动选举故障转移的部署形态,主从间靠 oplog 同步。本章从一次脑裂与一次写入丢失事故讲复制原理、选举机制、读写关注(read/write concern)与日常维护。读完本章,你能解释"数据到底什么时候算安全落地"。

学习目标

  1. 能画出复制集结构并解释 oplog 同步机制;
  2. 能描述选举过程与少数派侧的只读状态;
  3. 能按业务选择 writeConcern 与 readPreference;
  4. 能执行日常维护:增删节点、oplog 窗口管理。

核心概念速览

金句:复制集不是备份,它是"自动换班的值守";写入确认到几个节点,决定了断电时你会丢多少。

子章节导航

  • 6.1 复制原理:脑裂事故,讲 oplog、选举、多数派原则。复盘认真还原了 40 秒网络抖动的三段式影响——降级、选举、重入与回滚,每个机制在哪个时刻起作用一目了然。oplog 的幂等性推论值得记住:一条 updateMany 的复制成本按受影响文档数计,批量操作的复制压力与主库执行同级。
  • 6.2 部署与选举:选举异常事故,讲初始化、节点优先级与仲裁节点。三节点同机柜的四十分钟复盘引出故障域隔离的核心命题;延迟隐藏节点作为"后悔药",直接衔接第 2 章误删事故的防线设计。部署自查清单与季度演练建议,把高可用从配置文件变成可验证的事实。
  • 6.3 读写关注:回滚丢数据事故,讲 writeConcern、readPreference 与回滚文件。300 笔订单追回的六小时复盘之后,是一张按业务类型分类的 writeConcern 价目表,以及"读写关注成对设计"的原则——多数派确认配从库读,是花两份钱买负收益的典型错配。

子章节之间的逻辑关系

先懂同步与选举(6.1、6.2),再懂读写语义(6.3)——前两节解释"机器怎么配合",最后一节解释"应用怎么用才安全"。但三节其实是同一个问题的三个时间尺度:6.1 讲秒级(心跳、选举、oplog 回放),6.2 讲年级(部署拓扑、故障域规划),6.3 讲毫秒级(每次读写的一次确认语义)。把三个尺度分开看,很多"高可用玄学"就变成了可计算的工程参数。

oplog 同步(6.1) ──► 选举部署(6.2) ──► 读写关注(6.3) │ │ │ 数据怎么复制 谁当主 何时算确认 ​

本章还是前面几章若干伏笔的收束点:2.2 误删事故的三层防线在这里落地为延迟隐藏节点,1.2 提到的 journal 在 w 与 j 的辨析里再次出现,而 6.3 的多数派原则正是第 8 章多文档事务的地基。

本章知识点核对清单

离开本章前逐条自查:能否画出三节点复制集的写入路径(应用、主、oplog、从节点回放)并标出 writeConcern 的确认点;能否解释少数派侧为什么主动降级为只读、降级期间旧主上的写入命运如何;能否按"最长维护窗口乘写入速率"算出 oplog 该多大;能否说清 priority、hidden、secondaryDelaySecs 各自的适用场景;能否为自己的业务在 writeConcern 与 readPreference 的组合表里选出成对的一格并说出理由。答不上的条目,回对应小节的事故复盘里找答案。

前置知识与后续延伸

前置:第 1 章的 mongod。延伸:复制集是分片集群的基本积木——第 7 章每个分片就是一个复制集。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U