Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ /
Atlas 架构中心
/ /

多区域部署模式

多区域Atlas部署是指在多个地区设立的集群。多区域部署可能在同一地理位置(大洲或国家/地区等大片区域)内有多个区域,或者 多个地理位置中的多个区域。多区域部署:

  • 自动将流量重新路由到另一个地区,从而在区域中断时增强保护,实现持续可用性和流畅的用户体验。

  • 将数据放置在离用户更近的位置,从而提高某些应用程序的性能和可用性。

在考虑多区域部署是否适合您时,您必须评估应用程序的关键性以及它如何对应不同的 RTO/RPO 要求。弹性范围介于多区域部署的零停机和单地区部署的不同备份计划之间。代价是增加了费用以换取更高的可用性。

有关多区域部署是否适合您的工作负载的更多指导,请参阅“可靠性”部分。

注意

多区域部署仅适用于 M10 及更大的专用集群。

下图显示了 2+2+1拓扑结构的 2 示例,下文将详细讨论。它显示了在 3 个不同区域具有 5 个节点的单个集群:2 个节点位于 US1 中,2 个节点位于 US2 中,1 个节点位于 US3 中。

显示三种类型的多区域部署的图像
点击放大

为了在区域中断时实现近乎即时的恢复,我们建议采用一种架构,该架构由分布在 3 个区域的至少 5 个节点组成。这种架构确保可以在不强制故障转移到第二个地区的情况下进行定期维护操作,同时还确保在整个区域停电事件中自动进行故障转移和数据丢失保护。

下图显示了此架构的详细信息:

显示 2+2+1 多区域部署的图像
点击放大
  • 使用 私有端点连接到集群,并在应用程序服务器VPC 之间使用VPC对等互连。 VPC对等互连可确保如果网络连接中断或该地区的Atlas出现故障,应用程序层级仍可路由到主节点 (primary node in the replica set)节点,首先通过VPC对等互连,然后通过私有端点。

  • 由于区域之间的网络流量以及具有 5 个或更多数据承载节点,此架构的费用最高。

  • 这种架构提供了最高的弹性。 Atlas操作期间不会出现中断(例如自动升级),并且您的应用程序可以承受整个区域的故障,而无需中断和手动干预。

  • 由于区域之间的网络流量以及具有 5 个或更多数据承载节点,此架构的费用最高。

如果贵公司仅限于 2 地区,则可以使用 5 节点、3 地区架构的变体,其中 5 节点分布式在两个地区之间。主节点 (primary node in the replica set)地区有 2 个可选举节点,从节点(secondary node from replica set)地区有 1 个可选举节点和 2 个只读(无投票权)节点。

如果可以使用 3 区域,则通常不建议这样做。不过,对于仅拥有 2 批准地区的客户来说,这是一个不错的选择。

显示 2+3 多区域部署的图像
点击放大

这种架构提供了更强的防止数据丢失的保护。如果少数地区丢失,则无需用户执行任何动作,因为多数地区仍然是功能齐全的集群。如果多数地区丢失,系统仍将以只读模式保持可用,直到大多数节点进入可选举状态。但是,如果在发生故障后某些数据尚未复制到从从节点(secondary node from replica set),则它可能无法提供完整的数据丢失保护。在这种情况下,在主节点 (primary node in the replica set)地区恢复之前,该数据不可用。

这种架构有一些注意事项:

  • 如果多数地区丢失,则少数地区就不是功能齐全的集群;它没有主节点 (primary node in the replica set),只能接受读取,不能接受写入。

    由于没有多数投票节点,因此它没有主节点 (primary node in the replica set),只能接受读取(而不是写入)。

    要恢复正常运行的集群,管理员需要将2 只读节点重新配置为可选举节点。但是,数据可能会丢失。中断期间,对从节点的任何新写入都将放在一个特殊集合中,以供手动恢复。但是,在主节点 (primary node in the replica set)关闭之前,任何未复制到至少一个从节点(secondary node from replica set)的主节点 (primary node in the replica set)节点写入都会丢失。学习;了解更多信息,请参阅在区域中断期间重新配置副本集或使用 acceptDataRisksAndForceReplicaSetReconfig API参数。

  • 在分片的集群中,如果MongoDB进程没有复制数据块迁移,则数据不一致可能会导致孤立文档。

为了进一步节省费用,您可以设计没有 2 只读节点的架构。除了上面列出的注意事项之外,数据大小对决策也有重大影响,因为每当向集群添加新节点时,都需要将数据同步到从节点。示例,1 TB 的数据平均需要 1 小时的恢复和同步时间。我们建议在少数群体地区中设置 2 个只读节点,因为它们已经完全同步,并且恢复到功能齐全的集群只需几秒钟到几分钟的时间。

如果部署费用比可用性或延迟更重要,则可以通过在每个 3 区域中使用 1节点来创建一个成本较低的架构。每个区域都有一个可选举节点,这意味着如果主节点 (primary node in the replica set)节点不可用,您的集群将故障转移到新地区以确保持续可用性。但是,如果原始主节点 (primary node in the replica set)地区中的应用层级仍在为用户请求提供服务,则当请求跨多个区域路由时,延迟就会增加。

注意

我们一般不建议使用此配置,因为对Atlas节点进行定期、有计划的维护会导致暂时的延迟峰值。

要学习;了解如何配置多区域部署以及可以添加的不同类型的节点,请学习;了解Atlas文档中的配置高可用性和工作负载隔离。

要查找Atlas云部署建议,请参阅以下资源:

后退

单区域

在此页面上