Docs 菜单
Docs 主页
/
Atlas
/ /

常见问题解答:连接字符串选项

Atlas 提供多个连接字符串。这些字符串允许您从公共和私有上下文连接到集群。Atlas 始终为集群分配唯一的连接字符串,以便两个集群不会在 Atlas 中共享主机名或连接字符串。

连接字符串的 URI 的结构表示字符串的类型。如果您已创建对等互连连接或私有端点, Atlas会显示多个选项供您使用。

要连接 Atlas,请将应用程序指向 URI,以便与集群通信。创建具有多个节点或主机的集群。每个节点都有自己的主机名,可解析为 IP 地址。Atlas 连接的 URI称为连接字符串)可能具有多个主机名。配置 Atlas 以接受从允许的 IP 地址连接到集群主机。

Atlas 通过身份验证和 TLS 确保来自公共 IP 地址的连接安全。如果要连接到私有 IP 地址,则您可以使用:

  • AWS 和 GCP VPC 对等互连

  • Azure VNet 对等互连

  • AWS PrivateLink 和 Azure Private Link

这些功能都能管理安全网络内通过内部 IP 地址进行的通信。

使用安全网络时,Atlas 会提供多个连接字符串。每个网络都提供一个字符串,可以解析为不同 IP 地址。

所有集群都有一个标准连接字符串。该字符串可解析为集群的:

  • 用于互联网连接的公共 IP 地址;和

  • 从对等 VPC 解析时,AWS 集群的 VPC 私有 IP 地址。

对于通过互联网连接或连接到 AWS 对等互连集群的应用程序,请使用此字符串。

具有对等互连网络的集群拥有用于对等互连的私有 IP 连接字符串。此字符串解析为可用于以下人员的 IP 地址:

  • Azure 或 Google Cloud 中的对等互连网络

  • AWS 使用自定义 DNS 服务与集群进行对等互连。

使用该连接字符串连接满足下列条件的应用程序:

  • Azure 或 Google Cloud 对等互连网络中

  • 在使用带自定义 DNS 服务的 AWS 时,连接到 AWS 集群。

配置有私有端点的地区中的 AWSAzure 集群具有一个或多个连接字符串。每个字符串都解析为您的 VPC 或 VNet 中一个网络接口的私有 IP 地址,该接口直接连接至 Atlas VPC 或 VNet 中的负载均衡器。将这些连接字符串用于连接私有端点的应用程序。

在 2020 年 3 月 31 日之前,您需要启用仅对等互连模式才能连接到对等互连网络 Azure 或 Google Cloud 集群上的数据库。此模式:

  • 影响全局 DNS 解析,以及

  • 限制对等互连网络之外的任何数据库连接。

多重视野解除这些限制并解锁以下附加功能:

要利用多个范围,请完成以下任务:

注意

此时,您可以使用现有的启用对等互连的连接字符串继续连接到集群。仅对等互连模式可防止访问改进的功能并减少多范围的限制。要使用新功能并删除旧限制,MongoDB 要求使用新连接字符串。

可以。

更改应用程序,使其使用对等互连私有 IP 连接字符串进行连接。此更改支持应用程序使用 UI 或 API 从对等互连网络进行连接。

要扩展到更多区域,请先在现有 Azure 集群上禁用仅对等互连模式。

要禁用仅对等互连模式,使用:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Database 标题下的 Clusters

会显示集群页面。

2

更改应用程序中使用 Atlas 集群的任何 URL ,以使用对等连接字符串的私有 IP 。

3
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Project Settings

显示项目设置页面。

4

Connect via Peering Only (GCP and Azure) 切换为关闭。

1

调用get all API 端点返回所有集群及其 MongoDB 版本:

例子

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/clusters?pretty=true"

如果成功,响应会包括以下内容:

{
"results": [{
...
"mongoDBMajorVersion": "6.0",
"mongoDBVersion": "6.0.14",
...
},{
...
"mongoDBMajorVersion": "6.0",
"mongoDBVersion": "6.0.12",
... }
]
}
2

更改应用程序中使用 Atlas 集群的任何 URL ,以使用对等连接字符串的私有 IP 。

3

调用 API 端点以禁用专用 IP 模式。

例子

使用 curl 时,请调用以下命令:

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/privateIpMode?pretty=true" \
--data '
{
"enabled" : false
}'

{GROUP-ID} 更改为项目的项目 ID。

如果成功,响应会显示以下内容:

1{
2 "enabled" : false
3}

在 2020 年 3 月 31 日之前,使用自定义 DNS 服务和与 Atlas 对等互连的 VPCAWS 中部署的应用程序,无法通过私有 IP 地址进行连接:

  • 自定义 DNS 解析为公共 IP 地址。

  • AWS 内部 DNS 解析为私有 IP 地址。

AWS 中使用自定义 DNS 服务部署的应用程序应使用对等互连字符串的私有 IP

要显示这些字符串,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Project Settings

显示项目设置页面。

2
  1. Using Custom DNS on AWS with VPC Peering 切换到 On

  2. 查看 AWS 集群的 connect模态框。

  3. 选择 Private IP for Peering(对等互连的私有 IP)连接字符串。

标准连接字符串采用以下格式:

mongodb://xyz456-shard-00-00.ab123.mongodb.net:27017
mongodb+srv://xyz456.ab123.mongodb.net

ab123 之前的点很重要。使用此格式的 URI 解析为公共 IP 地址,除非 从配置了 VPC 对等互连的 AWS 内部进行连接。

重要

此格式更改了旧版连接字符串中的一个字符:集群名称后的连字符 (-) 变为句点 (.)。

例如,此旧版连接字符串

mongodb+srv://xyx456-ab123.mongodb.net

写为以下标准连接字符串

mongodb+srv://xyx456.ab123.mongodb.net

对于新集群,副本集和分片的名称不从集群的名称衍生而来。新名称使用六个字母数字字符 ID。

私有连接字符串遵循以下格式:

mongodb://xyx456-shard-00-00-pri.ab123.mongodb.net:27017
mongodb+srv://xyx456-pri.ab123.mongodb.net

ab123之前的-pri很重要。使用此格式的 URI 解析为对等互连网络中可访问的私有 IP 地址。如果您为集群配置网络对等互连,则在连接到集群以利用对等互连时必须使用新的主机名。

重要

在新集群中,副本集和分片的名称不从集群的名称衍生而来。新名称使用六个字母数字字符 ID。

AWS PrivateLink 连接字符串遵循以下格式:

mongodb://pl-0-us-east-1a.ab123.mongodb.net:1024
mongodb+srv://pl-0-us-east-1a.ab123.mongodb.net

如果启用地区化私有端点设置,AWS PrivateLink 接连接字符串将遵循以下格式:

mongodb://pl-0-us-west-1.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-us-west-1.ab123.mongodb.net

使用此格式的 URI 可通过配置 PrivateLink 的 AWS VPC 进行访问,也可以从其他对等互连的 VPC 依次传递访问。

Azure Private Link 连接字符串遵循以下格式:

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://pl-0-eastus2.ab123.mongodb.net

如果启用地区化私有端点设置,Azure Private Link 接连接字符串将遵循以下格式:

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-eastus2.ab123.mongodb.net

采用此格式的 URI 可通过有人已配置专用链接的 Azure VNet 进行访问,尽管访问可从其他依次对等互连的 VNet 进行传递。

在 2020 年 3 月 31 日之前,您编写的 Atlas 连接字符串如下所示:

AWS

foo-shard-00-00-ab123.mongodb.net
foo-ab123.mongodb.net

AZURE

foo-shard-00-00-ab123.azure.mongodb.net
foo-ab123.azure.mongodb.net

Google Cloud

foo-shard-00-00-ab123.gcp.mongodb.net
foo-ab123.gcp.mongodb.net

如果启用 Private Only(仅私有)模式,这些主机名将解析为对等互连网络 IP 地址。如果禁用该模式,主机名将解析为公共 IP 地址。

如果您的应用程序在 Peering Only(仅对等互连)模式下使用旧版连接字符串,请切换到专用 IP 以获取对等互连字符串。

Atlas 可以使用专用端点服务的负载均衡器为分片集群生成优化的 SRV 连接字符串。当您使用优化的连接字符串时,Atlas 会限制应用程序与集群之间每个 mongos 的连接数。每个 mongos 的受限连接数可提高连接计数高峰期间的性能。

要使用优化的连接字符串,必须满足以下所有条件:

注意

如果您的集群符合优化 SRV 字符串的标准, Atlas会为您生成Optimized SRV Connection 字符串。如果您的集群曾经有旧连接字符串, Atlas会无限期地保留这些字符串,并在您选择 连接类型时包含一个Legacy SRV Connection Private Endpoint字符串。请考虑切换为Optimized SRV Connection 以获得最佳性能,并在使用连接字符串的所有位置更新。

如果您在 Atlas 发布此功能后创建集群并启用私有端点,则当您选择 Private Endpoint 连接类型时,Atlas 将默认显示优化的连接字符串。您可以通过向连接字符串添加 lb 来标识优化的连接字符串,示例如下:

mongodb+SRV://User1:P@ssword@cluster0-pl-0-lb.oq123.mongodb-dev.net/

要为没有 Legacy SRV Connection(传统 SRV 连接)选项的集群禁用优化的连接字符串,请联系支持人员

警告

转换为多区域集群

如果您将单区域分片集群转换为多区域集群而不启用区域化私有端点,则无法继续使用优化的连接字符串。在转换集群之前,请将您的连接字符串更新为前面说明中描述的 Legacy SRV Connection 连接字符串。

要了解如何使用驱动程序和优化连接字符串进行连接,请在连接应用程序过程中选择 Private Endpoint Connection 标签页。

如要了解如何使用 Compass 和优化的连接字符串进行连接,请在连接到集群步骤中选择 Private Endpoint Connection 标签页。

若要了解如何使用 mongosh 和优化的连接字符串进行连接,请在连接到集群过程中选择 Private Endpoint Connection 标签页。

如果您有一个旧版连接字符串,想要更改云提供商,则连接字符串必须包含 .gcp.azure,并且您要执行以下操作之一:

  • 迁移到 Google Cloud 或 Azure

  • 移出 Google Cloud 或 Azure

    注意

    任一操作都可能更改连接字符串。在 Atlas 用户界面,在升级完成后单击集群上的 Connect 可以获取更新的连接字符串。

这取决于以下因素:

  • 当前集群使用哪个云提供者

  • 创建集群的时间

如果您在 2020 年 11 月 3 日引入多云集群之前创建了集群,并且您的集群在 Google Cloud 或 Azure 上运行:

  1. 在 Atlas 中,进入项目的 Clusters 页面。

    1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

    2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

    3. 在侧边栏中,单击 Database 标题下的 Clusters

      会显示集群页面。

  2. 打开集群构建器。

  3. 编辑集群。

  4. 添加目标云提供商的只读节点。

    注意

    如果使用传统备份,请在当前云提供商中保留一个节点,并将其余节点移至目标云提供商。

  5. 审查并提交更改。

  6. 复制形成的以逗号分隔的 URI 连接字符串。

  7. 用这个新的标准连接字符串替换应用程序中的连接字符串。

    这样,您的应用程序就可以连接至来自多个云提供商的节点。

  8. 重新启动您的应用程序。

  9. 确保您的应用程序可以连接到 Atlas。

  10. 第一次更改完成后,请重新配置集群:

    • 使用原始云提供商删除所有可选举节点。

    • 删除目标云提供商的只读节点。

    • 使用目标云提供商添加相同数量的可选举节点。

    注意

    如果使用传统备份,请等待新备份完成后,再将剩余节点移动到目标云提供商。

  11. 审查并提交更改。

  12. 复制形成的以逗号分隔的 URI 连接字符串。

  13. 用这个新的 URI 连接字符串替换应用程序中的 URI 连接字符串。

  14. 重新启动您的应用程序。

  15. 确保您的应用程序可以连接到 Atlas。

如果满足以下任一条件,则连接字符串不会更改,并且集群不会停机:

  • 您的集群在Amazon Web Services上运行。

  • 您的集群可以在云提供商上运行,但在 11 月 2 2020 之后创建。

要更改集群的云提供商,请执行以下操作:

  1. 在 Atlas 中,进入项目的 Clusters 页面。

    1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

    2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

    3. 在侧边栏中,单击 Database 标题下的 Clusters

      会显示集群页面。

  2. 打开集群构建器。

  3. 编辑集群。

  4. 更改云提供商。

  5. 审查并提交更改。

后退

常见问题解答:账单