我有一个四核系统,我试图在MEAN堆栈上运行一个应用程序。我使用mongoose驱动程序时将poolSize设置为5。但我看到在monogod日志中打开了40多个连接。没有集群我注意到poolSize正常工作,我看到只有5个连接打开。
群集的连接问题
var app = express();
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i += 1) {
cluster.fork();
}
cluster.on('exit', function (worker) {
console.log('Worker ' + worker.id + ' died :(');
cluster.fork();
});
}
else {
/**
* Connect to MongoDB.
*/
dalUtils.connectToDatabase(secrets.env);
/**
* Express configuration.
*/
}
我的server.js代码如下
var mongoose = require('mongoose');
var secrets = require('../../config/secrets');
exports.connectToDatabase = function(environment){
mongoose.connection.on('error', function() {
console.error('MongoDB Connection Error. Please make sure that MongoDB is running.');
});
mongoose.connection.on('connected', function() {
console.log('Connected!!!');
});
switch (environment) {
case 'development':
mongoose.connect(secrets.dev_db,{ server: { poolSize: 5 }});
break;
case 'production' :
mongoose.connect(secrets.prod_db);
break;
default :
mongoose.connect(secrets.dev_db);
break;
}
};
我的dalutils代码如下
{{1}}
答案 0 :(得分:0)
所以,问题不在上面提到的代码中。我使用mongo-store而不是使用mongooseConnection属性,我使用了url。这导致另外20个连接打开而不是默认连接池
store: new MongoStore({ mongooseConnection: mongoose.connection })