繁体   English   中英

nodejs + mongodb 连接池

[英]nodejs + mongodb connection pooling

我是 mongodb 和 node.js 的新手,对连接池感到困惑。 假设代码是这样的:

import mongodb from "mongodb";
const { MongoClient } = mongodb;

const client = new MongoClient("localhost:27017");

async function main() {
  await client.connect();
}

根据驱动文档,MongoClient 的默认连接池大小为 5。

所以每次调用await client.connect(); 创建 1 个与 mongod 的连接,如果我调用await client.connect() 6 次,则无法建立第 6 个连接?

连接池是客户端知道的每个服务器。 多次调用 connect 不会让客户端知道更多的服务器,因此不会影响池中的连接数。

另外,客户端每个已知服务器包含一个监控连接,因此在典型的副本集部署中,不执行任何应用程序发出的操作的客户端将有 3 个打开的连接,而不是 1 个。在分片集群中,监控连接的数量是与 mongos 进程的数量相同。

与此类似,如果您要连接到最小连接池大小设置为 5 的 3 节点副本集,则客户端将建立 15 个应用程序连接(每个 RS 节点 5 个)除了 3 个监控连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM