You need to enable JavaScript to run this app.
文档中心
文档数据库 MongoDB 版

文档数据库 MongoDB 版

复制全文
下载 pdf
常见问题
网络连接
复制全文
下载 pdf
网络连接
本文汇总了文档数据库 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 库)。​
若您自行创建的账号属于其他数据库(如 testdb1),您需要将 authSource 后 admin 改为自建账号所在的数据库(如 testdb1)。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。​
MongoDB 实例的最大连接数是多少?​
MongoDB 实例的各节点规格都有对应的默认推荐连接数,具体信息,请参见产品规格。​
推荐连接数是指实例中单个节点的默认连接数上限。例如,2 核 4 GiB 的副本集实例的单节点推荐连接数为 2000,表示该实例的主节点和从节点(隐藏节点仅用于保障高可用,不提供连接服务)的默认连接数上限均为 2000。​
连接数使用达到上限后,系统会拒绝新建的连接。若您需要使用更多的连接数,您可以通过 net.maxIncomingConnections 参数修改实例的单节点最大并发连接数,关于该参数的更多信息,请参见参数支持。您也可以通过升级节点规格获得更大的连接数。​
如何查看 MongoDB 实例的连接使用情况?​
您可以通过如下步骤来查看 MongoDB 实例当前连接数使用情况。​
  1. 在安装了 MongoDB shell 的本地服务器或 ECS 中,通过 MongoDB shell 工具连接 MongoDB 实例。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。​
  1. 执行如下命令来查看实例的连接数使用情况。​
  • ​
    db.serverStatus().connections​
    ​
  • 返回结果示例如下。​
说明​
您可以重点关注 current 和 available 参数,实例的最大连接数 = 当前已建连的连接数 + 剩余可用的连接数。​
  • ​
    {​
    "current" : 14, // Number of existing connections​
    "available" : 386, // Number of available connections​
    "totalCreated" : 65, ​
    "internalCurrent" : 15,​
    "internalTotalCreated" : 618540,​
    "active" : 3​
    }​
    ​
如何查看连接 MongoDB 实例的客户端来源?​
您可以通过如下步骤来查看连接 MongoDB 实例的客户端来源(包括 IP 地址和端口号信息)。​
  1. 在安装了 MongoDB shell 的本地服务器或 ECS 中,通过 MongoDB shell 工具连接 MongoDB 实例。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。​
  1. 执行如下命令查看数据库中正在运行的语句。​
  • ​
    db.currentOp({"active" : true})​
    ​
  • 部分返回结果示例如下。​
说明​
您可以重点关注查询结果中 client 参数(即当前连接所对应的客户端信息),来确认各客户端与 MongoDB 实例建立的连接数情况。关于 db.currentOp() 命令的更多用法,请参见 db.currentOp()。​
  • ​
    {​
    ...​
    "client" : "192.168.***.***:****", // Client information for current connection​
    "appName" : "MongoDB Shell",​
    "active" : true,​
    "currentOpTime" : "2023-01-28T16:45:51.243+0800",​
    "opid" : 7339****,​
    ...​
    "secs_running" : NumberLong(0),​
    "microsecs_running" : NumberLong(137),​
    "op" : "command",​
    "ns" : "admin.$cmd.aggregate",​
    "command" : {​
    "currentOp" : 1,​
    ...​
    "$db" : "admin"​
    },​
    "numYields" : 0,​
    "locks" : {​
    },​
    "waitingForLock" : false,​
    "lockStats" : {​
    },​
    ...​
    ​
    }​
    ​
如何限制访问 MongoDB 实例的客户端连接数?​
您可以在连接 MongoDB 实例时,通过 &maxPoolSize=[$Integer] 参数,设置客户端连接池的最大连接数。​
例如,当使用 MongoDB shell 工具连接 MongoDB 实例时,您可以在连接地址字符串的末尾添加 &maxPoolSize=[$Integer] 参数,具体命令示例如下(本文示例中以副本集实例私网连接地址为例,连接池数量为 2000)。​
​
"mongodb://<user>:<password>@mongoreplicae9d7d321****0.mongodb.ivolces.com:3717,mongoreplicae9d7d321****1.mongodb.ivolces.com:3717/?authSource=admin&replicaSet=rs-mongo-replica-e9d7d321****&retryWrites=true&maxPoolSize=2000​
​
不同语言客户端限制连接池数量的说明,请参见 MongoDB Drivers。​
为副本集实例新增节点或为分片集群新增 Mongos 节点后,需要修改应用程序的连接地址代码才能连上新增节点吗?​
为副本集实例新增节点或为分片集群新增 Mongos 节点后,您不修改客户端的连接地址串,MongoDB 也能自动发现并连接上新增节点。​
但为保证故障切换和负载均衡效果,还是建议您在新增节点后,将客户端上的连接地址串代码替换为新的完整连接地址串代码(如下图所示),来连接 MongoDB 实例。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。​
​​​
文档数据库 MongoDB 版是否支持 SRV 的连接方式?​
首先并不是所有客户端(如旧版本的 MongoDB 客户端)都支持 SRV 记录;此外,使用 SRV 记录需要额外的 DNS 解析成本会对性能造成一定影响。出于如上兼容性和性能考虑,文档数据库 MongoDB 版不支持 SRV 的连接方式。建议您直接使用标准的完整连接地址串方式来访问 MongoDB 实例。具体操作步骤,请参见通过 MongoDB shell 工具连接实例。​
如何查看 MongoDB 连接地址对应的 IP 地址?​
​
方法一:直接在控制台查看
方法二:通过 API 接口查询
方法三:通过 PING 命令查询
​
具体查看方法,请参见查看连接地址。​
​
是否支持修改 MongoDB 连接地址的域名?​
当前仅支持修改副本集实例和分片集群实例中 Mongos 节点连接地址的私网或公网连接地址域名,但不支持修改分片集群实例中 Shard 分片或 ConfigServer 节点的连接地址域名。具体操作步骤,请参见修改连接地址。​
文档数据库 MongoDB 版是否支持读写分离功能?​
支持。您可以根据业务需求,在 MongoDB 实例的高可用地址中通过设置 readPreference 和 readPreferenceTags 参数,来满足不同场景下的读写分离需求。更多详情,请参见读写分离。​
​
最近更新时间:2026.03.27 15:32:28
这个页面对您有帮助吗?
有用
有用
无用
无用