Jon*_*ake 6 mongodb node.js express mongoskin node-mongodb-native
我一直在达到我的连接限制,但http流量保持一致.我用MMS来描述我的mongod进程,看到连接数不断增加:

我正在使用Node.js(Express)的mongoskin包装器.我有一个自定义路由中间件,在执行其他路由之前连接到mongo db:
var _connect = function(req, res, next) {
res.db = mongoskin.db(_us.sprintf(
'%s:%s@localhost:27017/%s?auto_reconnect',
app.set('mongoDbUser'),
app.set('mongoDbPw'),
app.set('mongoDb')
));
next();
};
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?我该如何打开和关闭连接?
mongoskin是node-mongodb-native驱动程序的包装器,因此底层本机驱动程序的选项仍然适用.
一些减少使用连接数的建议:
在启动应用程序之前打开连接(您不希望在每个请求中打开连接):
var db = new mongoskin.db(...)
db.open(function(err, db) {
// Application logic
})
Run Code Online (Sandbox Code Playgroud)调整node-mongo-native 连接poolSize.连接池允许在应用程序中共享一组连接,而不是始终打开新连接.默认的poolSize在旧驱动程序中为1,而在2012年8月16日发布的node-mongo-native 1.1.4驱动程序中为5.
所以你可以尝试类似的东西:
var mongoskin = require('mongoskin');
var serverOptions = {
'auto_reconnect': true,
'poolSize': 5
};
var db = mongoskin.db('localhost:27017/test', serverOptions);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |