Raj*_*Raj 5 connection connection-pooling mongodb node.js
在以下代码中,mongoClient.connect调用(默认情况下)打开一个包含5个连接的池.由于Node是单线程的,因此只能进行一次调用(func1或func2可以随时处理(第二次调用等待第一次调用完成).因此,只使用池中五个连接中的一个.
使用Nodejs集群,如果我们分叉多个实例,每个实例都会打开它自己的连接池(每个实例5个连接).
问题是 - MongoDB连接池如何在Node环境中工作.我们如何测试这个来演示同时使用同一个池中的多个连接?
mongoClient.connect('mongodb://localhost', function(err, db){
app.get('/func1', function(req, res){
for (var i=0; i<100000; i++){
db.collection('test').insert({a:i});
}
res.end();
});
app.get('/func2', function(req, res){
for (var i=0; i<100000; i++){
db.collection('test').insert({a:i});
}
res.end();
});
});
Run Code Online (Sandbox Code Playgroud)
insert是异步的,因此/func1和/func2处理程序都只是将 100000 个插入排队然后返回。然后,连接池在后台运行,一次执行不超过 5 个插入(池中每个连接 1 个)。
| 归档时间: |
|
| 查看次数: |
949 次 |
| 最近记录: |