Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB中的连接池_Node.js_Mongodb_Connection Pooling - Fatal编程技术网

Node.js MongoDB中的连接池

Node.js MongoDB中的连接池,node.js,mongodb,connection-pooling,Node.js,Mongodb,Connection Pooling,使用MongoDB连接池的MongoDB数据库支持NodeJ。对打开的连接数量有疑问 当我们使用以下代码连接到NodeJS中的mongoDB数据库时: MongoClient.connect(url, { poolSize: 25 },function(err, db) { console.log('connected successfully, reuse this db object in the whole application'); } ); 正在观察和测试m

使用MongoDB连接池的MongoDB数据库支持NodeJ。对打开的连接数量有疑问

当我们使用以下代码连接到NodeJS中的mongoDB数据库时:

MongoClient.connect(url, {  
  poolSize: 25
},function(err, db) {
    console.log('connected successfully, reuse this db object in the whole application');
    }
);
正在观察和测试mongoDB数据库的行为,但对此有一些疑问

问题:
  • 连接池是否以最佳方式自动打开和关闭连接,或者程序员是否需要对此进行优化
  • 如果这样可以优化如何

  • 自动的,是的。优化,嗯,你是时候设置一个
    池大小了。通常有一个“默认”大约5个连接,我“认为”没有去看,始终保持最低限度。只有当来自事件循环的并发请求需要新的连接时,池才会增长,但它们不会立即关闭,并且会在需要时保持打开状态一段时间。如果您希望使用大量连接,那么您可以通过向服务器发送大约20个并行的“琐碎”请求来“预热”,以迫使池增长。真正的问题是,“您为什么需要知道?”。如果有什么特别的事情让你认为你需要大量的联系,那么你可能应该解释一下,这样你就可以对你想做的事情做出明确的“是的,你是对的”或“不,做这个”的回应。在相当多的场景中,虽然默认的5应该足够了,如果您认为需要更多,那么您真的应该开始质疑请求模式,看看是否有一些事情可以做得更好,而不需要发出那么多请求。甚至“只要”请求。如果我有1k个用户,他们每分钟进行~5次查询,我会遇到性能问题吗?我会称之为非常小的问题。对于这种负载,只需使用默认设置即可。老实说,更大的问题通常与应用程序代码本身有关。这里经常会有人问到关于“等待我的500个承诺来解决”的问题,这些问题来自于个人
    .find()
    请求,我们通常可以将其分解为“运行这一个请求”。所以这是你通常首先需要担心的事情。将“连接池”设置保留到每分钟1000的负载显著增加时。