Stále dodržiavam svoj limit pripojenia, ale prevádzka protokolu http zostala konzistentná. Použil som MMS na profilovanie procesu mongod a videl som, že počet spojení neustále stúpa:
Používam obálku mongoskin pre Node.js (Express). Mám pred inštaláciou iných trás kus middleware vlastnej trasy, ktorý sa pripája k 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();
};
Robím niečo zle? Ako by som mal otvárať a zatvárať spojenia?
odpovede:
7 pre odpoveď č. 1mongoskin je obal pre Uzol-MongoDB natívne ovládač, takže možnosti pre pôvodný natívny ovládač stále platia.
Niekoľko návrhov na zníženie počtu použitých pripojení:
Pred spustením aplikácie otvorte pripojenie (pri každej žiadosti nechcete otvoriť pripojenie):
var db = new mongoskin.db(...) db.open(function(err, db) { // Application logic })
Upravte uzol-mongo-native veľkosť pripojovacieho fondu, Združovanie pripojení umožňuje množinu pripojenízdieľať vo vašej aplikácii a nie vždy otvárať nové pripojenia. Predvolená hodnota poolSize je 1 u starších ovládačov a 5 od ovládača 1.1.4 node-mongo-native, ktorý bol vydaný 16. augusta 2012.
Mohli by ste skúsiť niečo ako:
var mongoskin = require("mongoskin"); var serverOptions = { "auto_reconnect": true, "poolSize": 5 }; var db = mongoskin.db("localhost:27017/test", serverOptions);