Mongodb连接池问题与多核系统的MEAN堆栈应用程序

时间:2016-03-28 11:20:20

标签: node.js mongodb mongoose mean-stack

我有一个四核系统,我试图在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}}

1 个答案:

答案 0 :(得分:0)

所以,问题不在上面提到的代码中。我使用mongo-store而不是使用mongooseConnection属性,我使用了url。这导致另外20个连接打开而不是默认连接池

 store: new MongoStore({ mongooseConnection: mongoose.connection })