本文汇总了文档数据库 MongoDB 版网络连接的常见问题。
文档数据库 MongoDB 版是否支持公网访问?
支持。您可以为 MongoDB 实例申请公网地址,以便 VPC 外的设备通过公网地址来访问 MongoDB 实例。公网地址申请方法,请参见申请公网地址。 文档数据库 MongoDB 版支持哪些语言的客户端进行连接?
文档数据库 MongoDB 版完全兼容官方 MongoDB 协议,因此文档数据库 MongoDB 版与社区 MongoDB 支持的客户端(如 Node.js、PHP、Java、Python、C、C++、Scala、Golang、.NET Core 等 )一致。关于多语言客户端的更多详情,请参见 MongoDB Drivers。 如何通过自建账号(即非 root 账号)连接实例?
文档数据库 MongoDB 版创建成功后,系统会默认在 admin 数据库中创建一个超级管理员账号 root,因此 MongoDB 的默认连接地址中 authSource 值为 admin(即会默认连接到 admin 库)。
MongoDB 实例的最大连接数是多少?
MongoDB 实例的各节点规格都有对应的默认推荐连接数,具体信息,请参见产品规格。 推荐连接数是指实例中单个节点的默认连接数上限。例如,2 核 4 GiB 的副本集实例的单节点推荐连接数为 2000,表示该实例的主节点和从节点(隐藏节点仅用于保障高可用,不提供连接服务)的默认连接数上限均为 2000。
连接数使用达到上限后,系统会拒绝新建的连接。若您需要使用更多的连接数,您可以通过 net.maxIncomingConnections 参数修改实例的单节点最大并发连接数,关于该参数的更多信息,请参见参数支持。您也可以通过升级节点规格获得更大的连接数。 如何查看 MongoDB 实例的连接使用情况?
您可以通过如下步骤来查看 MongoDB 实例当前连接数使用情况。
说明
您可以重点关注 current 和 available 参数,实例的最大连接数 = 当前已建连的连接数 + 剩余可用的连接数。
如何查看连接 MongoDB 实例的客户端来源?
您可以通过如下步骤来查看连接 MongoDB 实例的客户端来源(包括 IP 地址和端口号信息)。
说明
您可以重点关注查询结果中 client 参数(即当前连接所对应的客户端信息),来确认各客户端与 MongoDB 实例建立的连接数情况。关于 db.currentOp() 命令的更多用法,请参见 db.currentOp()。 如何限制访问 MongoDB 实例的客户端连接数?
您可以在连接 MongoDB 实例时,通过 &maxPoolSize=[$Integer] 参数,设置客户端连接池的最大连接数。
例如,当使用 MongoDB shell 工具连接 MongoDB 实例时,您可以在连接地址字符串的末尾添加 &maxPoolSize=[$Integer] 参数,具体命令示例如下(本文示例中以副本集实例私网连接地址为例,连接池数量为 2000)。
为副本集实例新增节点或为分片集群新增 Mongos 节点后,需要修改应用程序的连接地址代码才能连上新增节点吗?
为副本集实例新增节点或为分片集群新增 Mongos 节点后,您不修改客户端的连接地址串,MongoDB 也能自动发现并连接上新增节点。
文档数据库 MongoDB 版是否支持 SRV 的连接方式?
首先并不是所有客户端(如旧版本的 MongoDB 客户端)都支持 SRV 记录;此外,使用 SRV 记录需要额外的 DNS 解析成本会对性能造成一定影响。出于如上兼容性和性能考虑,文档数据库 MongoDB 版不支持 SRV 的连接方式。建议您直接使用标准的完整连接地址串方式来访问 MongoDB 实例。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。 如何查看 MongoDB 连接地址对应的 IP 地址?
方法一:直接在控制台查看
方法二:通过 API 接口查询
方法三:通过 PING 命令查询
您可以调用 DescribeDBEndpoint 接口查询指定 MongoDB 实例的连接地址信息,包括实例不同连接地址对应的 IP 地址信息,即返回结果的 DBAddresses 结构体中 AddressIP 信息。
您可以参考如下步骤查看 MongoDB 连接地址对应的 IP 地址:
- 获取 MongoDB 实例的连接地址。具体操作步骤,请参见查看连接地址。
- 登录客户端所在的 ECS 实例,并在命令行中执行 PING 命令。
说明
- Windows 系统和 Linux 系统中都可以使用 PING 命令。
-
是否支持修改 MongoDB 连接地址的域名?
当前仅支持修改副本集实例和分片集群实例中 Mongos 节点连接地址的私网或公网连接地址域名,但不支持修改分片集群实例中 Shard 分片或 ConfigServer 节点的连接地址域名。具体操作步骤,请参见修改连接地址。 文档数据库 MongoDB 版是否支持读写分离功能?
支持。您可以根据业务需求,在 MongoDB 实例的高可用地址中通过设置 readPreference 和 readPreferenceTags 参数,来满足不同场景下的读写分离需求。更多详情,请参见读写分离。