Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

配置高可用性和工作负载隔离

在此页面上

  • 考虑因素
  • 高可用性可选节点
  • 添加可选举节点
  • 删除可选举节点
  • 将可选举节点更改为只读节点
  • 提高集群的可用性
  • 更改最高优先级提供商或地区
  • 用于实现最佳本地读取的只读节点
  • 添加只读节点
  • 删除只读节点
  • 更改节点的工作负载用途
  • 用于工作负载隔离的分析节点
  • 添加分析节点
  • 为您的分析节点选择集群层
  • 删除分析节点
  • 搜索工作负载隔离节点
  • 考虑因素
  • 添加搜索节点
  • 删除搜索节点
  • 限制

提示

您可以使用以下云服务提供商的任意组合在 Atlas 中创建多云 MongoDB 部署:AWSAzure 以及 Google Cloud。

您可将 MongoDB 部署中的节点设为使用不同的:

  • 云提供商

  • 地理地区

  • 工作负载优先级

  • 复制配置

使用这些选项可提高集群的可用性和工作负载均衡。

要为集群配置节点特定的选项,请将 Multi-Cloud, Multi-Region & Workload Isolation (M10+ clusters) 切换至 On

多云服务提供商、多地区和工作负载隔离功能
点击放大

集群可以托管在:

  • 单个 cloud 提供商内的多个区域。

  • 跨多个 cloud 提供商的多个区域。

由于每个云提供商均有自己的一组地区,因此多云集群也属于多区域集群。

  • Atlas 不保证在拓扑更改期间主机名会与节点类型保持一致。

    例子

    如果您有名为 foo123 的集群,其中包含分析节点 foo123-shard-00-03-a1b2c.mongodb.net:27017,则 Atlas 并不保证在拓扑更改后(例如扩展集群,修改集群节点或区域的数量),特定主机名将继续引用分析节点。

  • 在分片集群中,Atlas 根据集群中可选地区的数量分配三个配置服务器节点。如果集群中有:

    • 只有一个可选地区,Atlas 会在该地区中部署所有三个配置节点。

    • 两个可选举区域,Atlas 在最高优先级区域部署两个配置节点,在第二高优先级区域部署一个配置节点。

    • 三个或更多可选举区域,Atlas 在三个最高优先级区域各部署一个配置节点。

  • 地区数量过多或节点分布过远可导致选举时间过长或复制延迟。

  • 添加、删除或修改投票成员的集群更改将需要更长的时间,因为 Atlas 以 滚动方式 一次添加、删除或修改一个 投票成员

  • 集群可跨区域和云服务提供商。跨区域集群的节点总数对每个项目都有特定的约束。

    Atlas 将一个项目中其他地区的节点总数限制为 40 个。此总数不包括:

    • 相互通信的 Google Cloud 地区

    • 免费集群或共享集群

    • 无服务器实例

    分片集群包括额外的节点。专用配置服务器副本集 (CSRS) 上的可选举节点计入允许的节点总数。每个分片集群的每个区域都有一个额外的可选举节点,作为专用 CSRS 的一部分。要了解更多信息,请参阅副本集配置服务器。

    任意两个区域之间的节点总数必须满足此限制。

    例子

    如果 Atlas 项目的集群节点分布在三个区域:

    • 地区 A 中 30 个节点

    • 地区 B 中 10 个节点

    • 地区 C 中 5 个节点

    您只能再向区域 C 添加 5 个节点,因为:

    1. 如果排除地区 C,则地区 A + 地区 B = 40。

    2. 如果不包括地区 B、地区 A + 地区 C = 15,<= 40。

    3. 如果不包括地区 A、地区 B + 地区 C = 15,<= 40。

    4. 每种添加了 5 个节点的地区组合仍符合每个项目的限制:

      • 地区 A + B = 40

      • 地区 A + C = 40

      • 地区 B + C = 20

    如果项目中有一个或多个集群跨越其他区域的 40 个或更多节点,则无法在该项目中创建多区域集群。

    有关提高此限制的问题或需要帮助,请联系 Atlas支持部门

  • Atlas 为多区域集群提供了内置自定义写关注。使用这些写关注可确保将您的写入操作传播到所需数量的地区,从而确保跨地区的数据一致性。要了解详情,请参阅内置自定义写关注

  • 一个区域中的可用区、区域或故障域的数量对 Atlas 可以部署的 MongoDB 节点数量没有影响。Mongo DB Atlas 集群总是由至少有三个 MongoDB 节点的副本集组成。

  • 如果使用标准连接字符串格式而不是DNS种子列表格式,则从现有跨区域集群中删除整个区域可能会产生新的连接字符串。

    要在部署更改后验证正确的连接字符串:

    1. 单击 Atlas 左上角的 Database

    2. 单击 Clusters 视图中的 Connect

  • 如计划在所选地区的第一个M10+专用付费集群上创建一个或多个 VPC 对等互连,请首先查看有关 VPC 对等互连的文档。

如果您添加具有可选举节点的地区,您可以:

  • 提高数据可用性和

  • 减少数据中心停机造成的影响。

您可以从一个云提供商设置不同的地区,也可以选择不同的云提供商。

Atlas 会将 Electable nodes(可选举节点)表第一行内的节点设为 Highest Priority作(最高优先级)地区。

Atlas 会对该区域中的节点进行优先排序,以确定主节点资格。其他节点按出现的先后顺序排列。有关详细信息,请参阅成员优先级。

每个可选举节点都可以:

  • 参加副本集选举。

  • 成为主节点,而副本集中的大部分节点仍然可用。

您可通过 Electable nodes for high availability(用于实现高可用性的可选举节点)部分在一个云提供商和区域中添加可选举节点。

要添加可选举节点,请执行以下操作:

  1. 单击 Add a provider/region(连接)。

  2. Provider(提供商)下拉列表选择云提供商。

  3. Region 下拉列表中选择区域。

    当您更改 Provider 选项时, Region 将变为空白选项。如果没有不选择地区,则单击 Create Cluster 时,Atlas 会显示错误。

  4. 指定提供者和区域所需的 Nodes(节点)数。

    集群中所有提供者和区域的可选节点总数必须等于 357

Atlas 会将标有 的地区视为推荐地区。与其他地区相比,这些区域可提供更高可用性。

要了解详情,请参阅:

要从区域中删除节点,请单击此区域右侧的图标。您无法删除 Highest Priority 区域中的节点。

要了解更多信息,请参阅多区域集群备份

您可以通过添加只读节点并同时删除可选举节点,将可选举节点更改为只读节点。要了解更多信息,请参阅更改节点的工作负载用途。

要提高集群的冗余性和可用性,请增加此区域中可选节点的数量。每个 Atlas 集群都有一个Highest Priority区域。如果您的集群跨越多个区域,则可选择哪个云提供商地区应具有Highest Priority

若要防止可用性和性能损失,请考虑以下方案:

故障点
如何防止此故障点
云服务提供商
在所有三个云提供者中至少设置一个节点。每个区域不止一个节点。
区域
在三个或以上不同区域至少设置一个节点。每个区域不止一个节点。
节点
  • Recommended区域中的三个或更多可选举节点,

  • 跨两个或更多地区的三个或更多可选举节点。

如果您更改活动多区域集群中的 Highest Priority(最高优先级)提供商和区域,Atlas 会在您指定的提供商和区域中选择一个新的主节点(假设每个提供商和区域中的节点数保持不变,且未修改其他内容)。

例子

如果有一个活动的 5 节点集群,其配置如下:

节点
提供商
区域
优先级
3

AWS

us-east-1
最高
2

Google Cloud

us-west3

要将 Google Cloud us-west3 节点设为 Highest Priority(最高优先级),请将其行拖动到集群 Electable nodes(可选举节点)列表的顶部。在此更改之后,Atlas 会在 us-west3 中选举一个新的 PRIMARY(主节点)。更改该配置时,Atlas 不会启动初始同步或重新预配主机。

重要

某些情况可能会延误选举新主节点。

例子

分片上有大量工作负载的分片集群可能会延迟选举。这就导致所有主节点暂时不在同一区域。

为了最大限度降低这些风险,请避免在工作负载较高期间修改主区域。

使用只读节点来优化这些节点各自服务区域内的本地读取。

您可以从 Read-Only Nodes for Optimal Local Reads 部分添加只读节点。

要在一个 cloud 提供商和区域中添加只读节点:

  1. 单击 Add a provider/region(连接)。

  2. Provider(提供商)下拉列表选择云提供商。

  3. Region 下拉列表中选择区域。

    当您更改 Provider 选项时, Region 将变为空白选项。如果没有不选择地区,则单击 Create Cluster 时,Atlas 会显示错误。

  4. 指定提供者和区域所需的 Nodes(节点)数。

Atlas 会将标有 的地区视为推荐地区。与其他地区相比,这些区域可提供更高可用性。

只读节点不提供高可用性,因为它们不参与选举。他们无法成为其集群的节点。只读节点具有不同的读取偏好标签,可将查询定向到所需区域。

如需删除某个云提供商和区域中的所有只读节点,请单击该云提供商和区域右侧的图标。

你可以通过同时添加和删除节点来更改节点的工作负载用途。

注意

您必须在同一配置更改中添加和删除节点才能重复使用节点。如果删除节点,保存更改,然后添加节点,Atlas 会改为预配一个新节点。

例如,要将只读节点更改为可选举节点:

  1. 添加可选举节点。

  2. 删除只读节点。

  3. 单击 Review Changes(连接)。

  4. 单击 Apply Changes(连接)。

使用分析节点来隔离您不希望与运行工作负载进行竞争的查询。分析节点有助于处理数据分析操作,例如来自 BI Connector for Atlas 的报告查询。分析节点具有不同的副本集标签,而这些标签允许您将查询定向到所需地区。

单击 Add a region(添加区域),选择要在其中部署分析节点的区域。指定此区域所需的 Nodes(节点)数。

注意

readPreferencereadPreferenceTags连接字符串选项不可用于mongo Shell。要了解更多信息,请参阅cursor.readPref()Mongo.setReadPref()

您可以从 Analytics nodes for workload isolation(用于工作负载隔离的分析节点)部分添加分析节点。

要在一个云提供商和地区中添加分析节点,请执行以下操作:

  1. 单击 Add a provider/region(连接)。

  2. Provider(提供商)下拉列表选择云提供商。

  3. Region 下拉列表中选择区域。

    当您更改 Provider 选项时, Region 将变为空白选项。如果没有不选择地区,则单击 Create Cluster 时,Atlas 会显示错误。

  4. 指定提供者和区域所需的 Nodes(节点)数。

Atlas 会将标有 的地区视为推荐地区。与其他地区相比,这些区域可提供更高可用性。

分析节点无法提供高可用性,因为它们不参与选举。他们不能成为其集群的主节点 (primary node in the replica set)

分析节点和操作节点之间的工作负载可能会有很大差异。为帮助管理此问题,对于 M10+ 集群,您可以选择适合分析工作负载大小的集群层。您可以为分析节点选择集群层级,该层级可大于或小于为可选节点和只读节点(运行节点)选择的集群层级。此功能有助于确保您获得事务性和分析性查询所需的性能,而无需为分析性工作负载而过多或过少地配置整个集群。

以下注意事项适用于 Analytics Tier(分析层级)标签页和分析节点:

重要

如果您在Analytics Tier标签页上选择的集群层明显低于在Base Tier标签页上选择的集群层,则可能会导致复制延迟。分析节点可能会完全脱离oplog

  • 如果您在 Analytics Tier(分析层)标签页上选择 General(常规)集群层,并在 Base Tier(基础层)标签页上选择 Low-CPU(低 CPU)集群层,则集群不支持磁盘自动伸缩。如果您在 Base Tier(基础层)标签页上选择 General(常规)集群层,并在 Analytics Tier(分析层)标签页上选择 Low-CPU(低 CPU)集群层,则也不支持磁盘自动伸缩。

  • 所有节点类型的磁盘大小和 IOPS 必须保持不变。

  • 存储大小必须在 Base Tier(基础层)标签页和 Analytics Tier(分析层)标签页之间保持匹配。您可在 Base Tier(基础层)标签页上设置存储大小。

  • 如果要在Base Tier标签页上选择Local NVME SSD类,则必须在Analytics Tier标签页上选择相同的层级。

  • 如果集群层显示为灰色,则该集群层与集群的磁盘大小或 Local NVME SSD 类不兼容。

  • Analytics Tier(分析层)标签页上选择的集群层与在 Base Tier(基础层)标签页上选择的集群层定价相同。但是,当 Analytics Tier(分析层)高于或低于 Base Tier(基础层)时,价格会根据每个节点按比例进行相应调整。当您创建或编辑集群时,定价将显示在 Atlas 用户界面中。要了解详情,请参阅管理计费

添加分析节点后,您可以根据分析工作负载选择大小适当的集群层

  1. Cluster Tier(集群层)部分中,单击 Analytics Tier(分析层)标签页。

  2. 选择 Cluster Tier(集群层)。

要删除某个云服务提供商和地区的所有分析节点,请点击该云服务提供商和地区右侧的图标。

您可以将集群中的节点设置为仅运行 Atlas Search mongot进程。当您单独运行 Atlas Search mongot进程时,可以提高mongot进程的可用性和工作负载平衡。要了解更多信息,请参阅搜索节点架构。

在运行 MongoDB v6.0 及更高版本的 M10 或更高层级的 Atlas 集群上,您可将搜索节点与数据库节点分开配置。在单独部署 Atlas Search 节点之前,请查看以下内容。

您只能为专用( M10或更高)集群部署搜索节点。您无法在免费 ( M0 ) 和共享 ( M2M5 ) 层集群上添加搜索节点。您可以使用 Atlas 用户界面和 Atlas Administration API 为AWS 、Google Cloud 或Azure上的新的和现有的单区域集群预配搜索节点。

您只能在AWS或 Google Cloud 上托管搜索节点。在创建或修改Azure集群时,您无法为这些集群单独部署搜索节点。您无法为无服务器实例多云集群全局集群单独部署搜索节点。

Atlas 将搜索节点部署在与可选举、只读和分析节点相同的AWS 、Google Cloud 或Azure区域。

Atlas 支持单独部署搜索节点,以在任何 Google Cloud 和Azure区域中实现工作负载隔离。但是,您无法在某些AWS区域部署搜索节点。以下 Atlas 用户界面行为适用:

  • 如果您首先为集群节点选择以下任何AWS地区,Atlas 会禁用Search nodes for workload isolation切换。

  • 如果您先启用 Search nodes for workload isolation(搜索工作负载隔离节点),Atlas 则会在 Electable nodes for high availability(高可用性可选举节点)下地区的对应下拉列表中禁用以下功能。

Atlas 不支持在以下 AWS 区域部署搜索节点。

地区名称
AWS 区域
巴黎
eu-west-3
苏黎世
eu-central-2
米兰
eu-south-1
西班牙
eu-south-2
阿联酋
me-central-1
巴林
me-south-1
开普敦
af-south-1
香港
ap-east-1
Jakarta
ap-southeast-3
墨尔本
ap-south-4
海德拉巴
ap-south-2

要单独部署搜索节点,您必须从Electable nodes for high availability下拉列表中选择支持的AWS 、Google Cloud 或Azure区域。要了解有关支持区域的更多信息,请参阅专用搜索节点的区域。 Atlas 会自动为集群上的只读节点和分析节点使用相同的区域。部署后,您无法更改 Atlas 集群的云提供商或云提供商区域。

您可以在 Search Tier 标签页中选择搜索节点的搜索层级。

默认情况下,Atlas 在S20上部署搜索节点。您可以选择较高的层来实现更快的查询和更复杂的聚合,也可以选择较低的层来实现较小的工作负载。对于某些层级,您还可以选择低 CPU(推荐用于 Atlas Vector Search)和高 CPU(针对 Atlas Vector Search 进行优化)。

对于部署在AWS上的搜索节点,Atlas 在不同地区提供不同的搜索层级。如果您所选择的搜索层级在您所在区域不可用,Atlas 会自动在该区域可用的下一个更高层级中部署搜索节点。要了解更多信息,请参阅AWS 搜索层级。

要详细了解部署在 Google Cloud 或Azure上的搜索节点的搜索层级,请参阅:

当您将搜索节点添加到没有任何搜索节点的集群中时,与 mongod 同时运行的现有 mongot 进程将尾随数据库写入操作,这发生在 Atlas Search 完成初始同步之后,而新的专用搜索节点上的 mongot 进程会对所需的集合执行初始同步。这会导致迁移进程中出现双重读取。

如果删除集群上的所有现有搜索节点,则在处理搜索查询结果时会出现短暂中断,同时 Atlas 会从在专用搜索节点上单独运行的 mongot 进程迁移到与 mongod 并行运行的 mongot 进程。不过,在迁移索引时不会出现任何停机,也不会出现过时数据。

如果您通过私有连接连接到多云部署,则只能访问您连接的同一云提供商中的节点。该云提供商在其区域中可能没有节点。发生这种情况时,您必须在连接字符串中指定从节点读取偏好模式才能访问部署。

如果您需要通过私有连接从当前提供商访问多 cloud 部署的所有节点,您必须:

  • 在当前提供者中为每个其余提供者配置一个 VPN。

  • 为其余每个提供商配置一个连接到 Atlas 的私有端点

← 暂停、恢复或终止集群