【问题标题】:Mongoose Constantly Opening Connections To MongoDBMongoose 不断打开与 MongoDB 的连接
【发布时间】:2013-01-18 04:33:26
【问题描述】:

我有一个在 EC2 中运行的 Node.js 应用程序连接到不断打开和关闭连接的 MongoDB。当我跟踪日志文件时,我看到源源不断的:

Sat Feb   2 23:29:06 [initandlisten] connection accepted from X.X.X.X:54291 #700437
Sat Feb  2 23:29:06 [conn700437] end connection X.X.X.X:54291
Sat Feb  2 23:29:06 [initandlisten] connection accepted from X.X.X.X:42206 #700438
Sat Feb  2 23:29:06 [conn700438] end connection X.X.X.X:42206
Sat Feb  2 23:29:06 [initandlisten] connection accepted from X.X.X.X:34255 #700439
Sat Feb  2 23:29:06 [conn700439] end connection X.X.X.X:34255
Sat Feb  2 23:29:07 [initandlisten] connection accepted from X.X.X.X:49641 #700440
Sat Feb  2 23:29:07 [conn700440] end connection X.X.X.X:49641
Sat Feb  2 23:29:08 [initandlisten] connection accepted from X.X.X.X:54293 #700441

在应用启动过程中建立一次连接,如下所示:

app.configure('production', function() {
    mongoose.connect('connstring');
})

app.configure(function database() {    
    mongoose.connection.on('error', function (err) {
        console.log(err);
    });
});

我有两个问题。

首先,这正常吗?

第二,为什么连接池不只打开几个连接?

谢谢

【问题讨论】:

    标签: node.js mongodb amazon-ec2 mongoose


    【解决方案1】:

    看起来他们可能在上一个 mongodb 驱动程序版本中为您的问题添加了修复:

    https://github.com/mongodb/node-mongodb-native/blob/master/HISTORY

    1.2.11 2013-01-29 - Ping 策略现在重用套接字,除非它们被服务器关闭以避免开销

    https://npmjs.org/package/mongodb

    【讨论】:

      【解决方案2】:

      是的,这很正常。驱动程序向您的节点发送 ping,以持续监控整个集群(包括辅助节点)的运行状况。

      【讨论】:

      • 当你说驱动时,我们说的是真正的 10gen 驱动,还是 mongoose 包?
      • 10gen 驱动程序(猫鼬使用它)。
      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2020-11-02
      • 1970-01-01
      • 2020-06-07
      • 2019-07-11
      • 2020-11-30
      • 2017-05-08
      相关资源
      最近更新 更多