/ / MongoDB spojenia neustále rastú - node.js, mongodb, express, mongoskin, node-mongodb-native

MongoDB pripojenia neustále narastajú - node.js, mongodb, express, mongoskin, node-mongodb-native

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:

pripojenia mongod

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ď č. 1

mongoskin 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í:

  1. 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
    })
    
  2. 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);