2016-03-28 6 views
0

Ich habe ein Quad-Core-System, wo ich versuche, eine Anwendung auf dem MEAN-Stack auszuführen. Ich habe die poolSize als 5 gesetzt, wenn ich den Mungo-Treiber benutze. Aber ich sehe mehr als 40 Verbindungen im Monogod-Protokoll geöffnet. Ohne Cluster merke ich, dass die poolSize korrekt funktioniert, ich sehe nur 5 Verbindungen geöffnet.Mongodb Verbindungspooling-Problem mit Multi-Core-System für eine MEAN-Stack-Anwendung

Verbindungsprobleme mit Clustern

2016-03-28T16:32:00.404+0530 I NETWORK [conn14] end connection 127.0.0.1:33925 (31 connections now open) 
2016-03-28T16:32:00.404+0530 I NETWORK [conn13] end connection 127.0.0.1:33924 (31 connections now open) 
2016-03-28T16:32:00.404+0530 I NETWORK [conn4] end connection 

Mein server.js Code als

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. 
*/ 
} 

Mein dalutils Code ist wie folgt

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; 
} 
}; 

Antwort

0

So folgt, war die Frage nicht in dem oben genannten Code. Ich benutzte mongo-store und anstatt die mongooseConnection-Eigenschaft zu verwenden, hatte ich url benutzt. Dies führte dazu, dass sich anstelle der Standardverbindung weitere 20 Verbindungen öffneten. Pools

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