选择部署模式需要考虑应用程序对可用性(一般情况下和中断情况下)、延迟、合规和费用的需求。不存在一种“正确”的部署范例。本节将探讨可帮助您满足部署需求的架构。
部署数据库时,必须首先选择是部署到单个地区还是多个区域。下图显示了这些选项,下文将进一步解释:

单区域部署
单区域部署是最简单的部署选项。在单区域部署中,您的数据存储在提供商的某一区域(例如 AWS 的us-west-2
或 Google 的asia-northeast3
)。对于具有多个可用区的区域, Atlas始终提供区域级可用性,您的集群节点分布在单个地区内的可用区域中。因此,如果单个区域出现故障,您的数据在其他区域仍然可用。
注意
推荐区域具有三个可用区,并在Atlas用户界面中标有星形图标。
单区域部署的简单性和费用较低,但随之而来的是可用性较低和潜在较高延迟的风险,具体取决于应用程序用户的分布。
多地区部署
多区域部署是一种更复杂的部署范例,与单区域部署相比,它可以在更大的地理范围内提供更高的可用性和更低的延迟。多区域部署有几种类型:
一个地理位置的多区域:部署到单个地理位置内由单个云提供商托管的多个区域,该地理位置定义为国家或大洲等大片区域。这样可以确保在任何给定地区发生故障时的可用性。
示例,您将集群部署到 AWS 地区
us-west-1
和us-east-1
,这两个地区都位于美国。如果us-east-1
不可用,us-west-1
将继续以接近正常性能接受读取和写入。多个地区的多区域:部署到两个或多个地区的一个或多个地区。这样可以在任何给定地区发生故障或整个地理区域不可用时确保可用性。
示例,您在位于美国的 AWS 区域
us-east-1
和us-east-2
中部署集群,并在位于欧洲的eu-west-2
中部署第三个集群。多云:部署到由多个云提供商托管的一个或多个区域。这提供了最高级别的可用性,确保在任何给定地区发生故障或整个云提供商发生故障时,您的数据可用。
示例,您在 AWS地区
us-west-1
和 Google Cloud地区us-east4
中部署集群。
可用性注意事项
可用性通常是指集群对中断的恢复能力,而灾难恢复是指系统从中断 (RTO) 中恢复的速度以及中断中可能丢失的数据量 (RPO)。由于所有Atlas实例始终具有最新数据,因此故障转移不需要恢复备份。
Atlas在您的部署中内置了复制,这意味着:
数据库实例彼此保持紧密同步,通常在毫秒范围内。
发生中断事件,数据库实例之间的故障转移是全自动的。它无需人工干预,只需几秒钟。
使用默认的 writeConcern 为
majority
时,故障转移期间不会发生数据丢失,因为所有数据都被写入多个位置,防止数据丢失。此外,数据库驾驶员将自动重试任何正在进行的操作,以确保操作成功。
这意味着 RTO、RPO 和数据复制频率实际上是相等的,只要大多数节点都运行正常,您的Atlas集群就可以全面运行。
注意
应在整个集群以及应用程序的部署方式中全面考虑最大 RTO 和 RPO。考虑集群的全部工作负载,确保其支持您的要求。
部署模式比较
要确定哪种部署模式适合您,请根据应用程序对核心业务的重要性对其进行细分。应用程序越重要(换言之,中断对业务的影响越大),您就越应该考虑自动处理任何中断事件的架构。
下表对部署范例进行了比较,帮助您确定最适合您需求的范例:
优先级 | 说明 | RTO | 部署模型 | 相对成本 |
---|---|---|---|---|
0 层级 | 最高关键度应用程序。即使在区域中断的事件下也需要全自动故障转移。 | 0 | $$$ | |
1 层级 | 重要性较低的应用程序。可能会出现一些停机或维护窗口,但收入不会受到重大影响。 | > 1 小时且 < 8 小时 | $$ | |
2 层级 | 最低关键度应用程序。可以停机 24 小时,而不会对收入重大影响。 | > 8 小时 | $+ | |
非生产 | 非关键应用程序。不直接影响收入且不面向客户的环境。通常是开发和测试环境。 | 不适用 | $ 0最多 |
用例
在选择部署模式时,首先要确定可以部署的最少区域数量,以便为最广泛地理分布的用户提供服务。然后,根据您对可用性、性能和数据主权的要求,考虑添加其他区域或云提供商。
请考虑以下使用案例,以帮助确定哪种部署模式最适合应用程序用户的地理分布:
用户主要分布在一个地区
如果您的应用程序的大多数用户都位于一个地区,我们建议您部署到同一地区内的一个或多个区域。单区域部署可以防止单个可用区出现中断,而多区域部署则可以覆盖更大的地理区域,确保可用区和区域中断期间的可用性。为了获得更高的可用性,您可以跨多个区域部署。这些选项都支持延迟,并简化了数据主权要求的合规,因为所有用户数据都是在同一地理位置访问和存储的。
要学习;了解有关这些部署范例的更多信息,请参阅以下范例页面:
用户分布在多个地区
如果您的应用程序的用户分布式在多个地区,例如美国和欧洲之间,我们建议您部署到每个地区的一个或多个区域。部署到您为客户提供服务的每个地理位置的一个地区,可以在发生地理中断时提供延迟和可用性。您还可以通过对数据分区满足数据主权要求,以便将来自每个地区的用户数据托管在该地区。
为了确保出现区域中断时的高可用性,同时又不增加延迟或违反数据主权要求,您还可以部署到每个地理位置的多个区域。您可以通过将集群部署到多个地理位置的多个区域来实现多区域部署的最高可用性。
要学习;了解有关这些部署范例的更多信息,请参阅以下范例页面:
用户分布在世界各地
如果您要向全球受众部署应用程序,我们建议您在考虑全球部署之前,部署。几乎在所有情况下,多个地理位置的多区域部署都可以满足您对高可用性、延迟和数据主权的要求。在极少数情况下,您可能需要进行全球Atlas部署,这是最复杂的多区域部署范例,需要非常仔细的规划。
要学习;了解有关这些部署范例的更多信息,请参阅以下页面: