1
Mongo DBへの単一の接続を開きます。負荷テストの後、私のアプリからDbへの複数の開いている接続を見ることができます。ここネイティブNodeJS MongoDBドライバが追加の接続を開きます
コードである:
var app = require('express')();
var logger = require('log4js').getLogger();
var async = require('async');
const logConnStr = 'mongodb://mysite.com/logs';
const AppPort = 10000;
logger.debug("Connecting to DB...");
function connectToLogs(cb) {
MongoClient.connect(logConnStr, { server: {reconnectTries: 3000} }, function(err, db) {
if (err)
return cb(err);
cb(null, db);
});
}
function getRoot(req, res) {
var dbLogs = req.app.locals.dbLogs;
dbLogs.collection('banners').count(function(err, count) {
if (err)
return res.json({status: false, result: err});
logger.debug(`Returning ${count}`);
res.json({status: true, result: count});
});
}
function onDbInit(err, dbs) {
assert.equal(err, null);
logger.debug("Connected.");
app.locals.dbLogs = dbs[0];
app.get('/', getRoot);
app.listen(AppPort);
logger.debug(`Listening on ${AppPort}, pid=${process.pid}`);
}
async.series([
connectToLogs
], onDbInit);
アプリケーションが予想通りのMongoDBへの接続の数は、1で実行されると:
[[email protected] ~]# lsof -p 19199 | grep TCP
node 19199 root 12u IPv4 3024199246 0t0 TCP aaa.xxx.yyy.zzz:53535->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
node 19199 root 13u IPv4 3024199307 0t0 TCP *:ndmp (LISTEN)
[[email protected] ~]#
そしてIは包囲してアプリケーションをテストロード:
siege -r 10 -c 10 aaa.xxx.yyy.zzz:10000
および実行losof
再び:
[[email protected] ~]# lsof -p 19199 | grep TCP
node 19199 root 12u IPv4 3024199246 0t0 TCP aaa.xxx.yyy.zzz:53535->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
node 19199 root 13u IPv4 3024199307 0t0 TCP *:ndmp (LISTEN)
node 19199 root 14u IPv4 3024238770 0t0 TCP aaa.xxx.yyy.zzz:53752->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
node 19199 root 15u IPv4 3024238914 0t0 TCP aaa.xxx.yyy.zzz:53758->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
node 19199 root 17u IPv4 3024238779 0t0 TCP aaa.xxx.yyy.zzz:53754->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
node 19199 root 18u IPv4 3024238824 0t0 TCP aaa.xxx.yyy.zzz:53756->aaa.xxx.yyy.zzz:27017 (ESTABLISHED)
[[email protected] ~]#
これらの接続はどこからですか?
テスト・システム:
CentOS6、NodeJS 5.8.0、MongoDBの3.2 WiredTiger、NodeJS MongoDBのドライバ2.1.7
nice one ..... ..... –