最近更新时间:2023.02.10 19:05:45
首次发布时间:2023.02.10 19:05:45
本文汇总了文档数据库 MongoDB 版网络连接的常见问题。
支持。您可以为 MongoDB 实例申请公网地址,以便 VPC 外的设备通过公网地址来访问 MongoDB 实例。公网地址申请方法,请参见申请公网地址。
文档数据库 MongoDB 版完全兼容官方 MongoDB 协议,因此文档数据库 MongoDB 版与官方 MongoDB 支持的客户端(如 Node.js、PHP、Java、Python、C、C++、Scala、Golang、.NET Core 等 )一致。关于多语言客户端的更多详情,请参见 MongoDB Drivers。
创建文档数据库 MongoDB 版实例时,系统会默认在 admin 数据库中创建一个 root 账号,拥有 MongoDB 内置 root 权限。您也可以自行创建其他权限的账号进行分权分库操作。账号创建成功后,您可以使用该账号来访问 MongoDB 实例。详细操作步骤,请参见通过自建账号连接实例。
MongoDB 实例的各节点规格都有对应的默认最大连接数,具体信息,请参见产品规格。
默认最大连接数是指实例中单个节点的默认最大连接数。例如,1 核 2GiB 的副本集实例的单节点默认最大连接数为 1000,表示该实例的主节点和从节点(隐藏节点仅用于保障高可用,不提供连接服务)的默认最大连接数均为 1000。
您可以通过如下步骤来查看 MongoDB 实例当前连接数使用情况。
在安装了 Mongo Shell 的本地服务器或 ECS 中,通过 Mongo Shell 工具连接 MongoDB 实例。具体操作步骤,请参见通过 Mongo Shell 工具连接实例。
执行如下命令来查看实例的连接数使用情况。
db.serverStatus().connections
返回结果示例如下。
说明
您可以重点关注 current
和 available
参数,实例的最大连接数 = 当前已建连的连接数 + 剩余可用的连接数。
{ "current" : 14, // 当前已建连的连接数 "available" : 386, // 剩余可用的连接数 "totalCreated" : 65, "internalCurrent" : 15, "internalTotalCreated" : 618540, "active" : 3 }
您可以通过如下步骤来查看连接 MongoDB 实例的客户端来源(包括 IP 地址和端口号信息)。
部分返回结果示例如下。db.currentOp({"active" : true})
说明
您可以重点关注查询结果中 client
参数(即当前连接所对应的客户端信息),来确认各客户端与 MongoDB 实例建立的连接数情况。关于 db.currentOp()
命令的更多用法,请参见 db.currentOp()。
{ ... "client" : "192.168.***.***:****", // 当前连接所对应的客户端信息 "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 实例时,通过 &maxPoolSize=[$Integer]
参数,设置客户端连接池的最大连接数。
例如,当使用 Mongo 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。