Ubuntu上的Node.js MongoDB:列表中没有有效的种子服务器

rin*_*hik 5 ubuntu replication mongodb node.js

我正在尝试使用以下方法从Ubuntu连接到副本集:

return when.promise(function(resolve,reject){
        new MongoClient().connect(url, {replSet: options }, function(err, db){
        console.dir(err)
        if (err)
            reject(err);

        resolve(db);
    });
});
Run Code Online (Sandbox Code Playgroud)

网址看起来像这样:

'mongodb://mongo1.mysite.com:36108,mongo2.mysite.com:36108,mongo3.mysite.com:36108/db_config?w=0'

我连接到多个数据库,间歇性地看到这个错误:

{ name: 'MongoError', message: 'no valid seed servers in list' }

而node.js崩溃了.

我有点迷失在这一点上.主要的问题是它在MAC上完美运行,我只在Ubuntu上看到这个问题.我正在使用node.js的最新mongo驱动程序

UPDATE

我看了一下本机驱动程序源:

http://mongodb.github.io/node-mongodb-native/core/api/replset.js.html

并发现该条件触发了错误(第987行): state.initialConnectionServers == 0 && state.replState.state == CONNECTING)

仍然不确定为什么会发生这种情况.

rin*_*hik 1

增加文件描述符的数量解决了这个问题。

在 Ubuntu 12.04.5 LTS 上,默认值是 1024,这还不够。