副本集与高可用
副本集(Replica Set)是 MongoDB 高可用的基石:多个持有相同数据的节点,通过选举在主节点故障时自动切换。本主题覆盖成员角色、选举机制、oplog 复制、读写一致性权衡,以及不能只看节点数的拓扑设计。
本章条目
| 编号 | 条目 | 类型 | 难度 | 一句话摘要 |
|---|---|---|---|---|
| REPL-01 | 副本集原理与高可用设计 | 指南 | 高级 | 成员角色、选举、oplog、故障转移、PSA 风险、跨区部署 |
核心原则
高可用不是「节点越多越好」
副本集高可用取决于投票成员的多数派(majority)能否维持,而非节点总数。PSA(Primary-Secondary-Arbiter)等拓扑在特定故障下会失去数据冗余或写可用性——必须按故障域分析,而不是数节点个数。
- 多数派是核心:选举与
w:"majority"写都依赖投票成员的多数存活。 - oplog 是复制的心脏:oplog 窗口不足会导致从节点无法追赶而需全量重同步。
- 故障转移期间有短暂不可写:应用必须具备重试与拓扑发现能力。
相关主题
- 复制影响读写一致性:见 read/write concern
- 复制故障处置:见 复制与选举排障
- 拓扑选型:见 单机/副本集/分片决策表
