首页/数据/NoSQL 速查/多机房部署模式的取舍
选型与架构50 条

多机房部署模式的取舍

多机房方案按 RPO/RTO 与成本选择:主备(异步复制,站点级故障时切换)、同城双活(低延迟链路加仲裁)、单元化/多活(数据按单元切分,避免跨站写冲突)。一致性协议成员跨机房时,写入延迟取决于慢机房,机房布局要服从仲裁需求。

NoSQL 速查数据更新于 2026-10-12

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 再选模式:多数业务不需要跨城强一致,但需要能说清故障时丢多少数据、多长时间恢复。

易错点

  • 副本成员平均分布在两个机房时,任一机房故障都可能选不出多数派,仲裁节点要放在第三个位置
  • 多活写入不做单元切分:跨站同时改同一记录需要冲突合并,业务复杂度会快速上升

数据来源与参考

  • MongoDB Manual: Deploy a replica set across data centers
  • Elasticsearch Guide: Cross-cluster replication
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌