MongoDB 分片集群的机房感知(zone 示意)
MongoDB 分片集群的机房感知(zone 示意)
// 给分片打机房标签,并把租户的数据范围固定到机房
sh.addShardToZone("shardA", "dc-east")
sh.updateZoneKeyRange("app.users", { region: "east" }, { region: "east~" }, "dc-east")
// 跨机房读偏好
// connection string: readPreference=nearest
// 多数派写:writeConcern: { w: "majority" } —— 跨机房部署时确认多数派落点模式对照
| 模式 | RPO/RTO 倾向 | 关键约束 |
|---|---|---|
| 主备(异步) | RPO 大于 0,RTO 分钟级 | 切换脚本与数据追赶要演练 |
| 同城双活 | RPO 接近 0,RTO 秒级 | 仲裁节点与脑裂防护 |
| 单元化多活 | 单元内自洽,故障影响面小 | 跨单元数据聚合与路由改造成本高 |
先量化可接受的 RPO/RTO 再选模式:多数业务不需要跨城强一致,但需要能说清故障时丢多少数据、多长时间恢复。