【问题标题】:MongoDB Atlas Nodejs script - connect takes around 2 to 3 seconds to cluster in singaporeMongoDB Atlas Nodejs 脚本 - 在新加坡连接集群大约需要 2 到 3 秒
【发布时间】:2019-07-10 12:58:15
【问题描述】:

我正在使用以下 sn-p 连接到 mongo,每个新连接大约需要 2 到 3 秒才能打开。只是想知道这是 MongoDB Atlas 的默认行为,还是我做错了什么。

    const MongoClient = require('mongodb').MongoClient;
    const uri = "mongodb+srv://<user>:<password>@<atlasUri>/test?retryWrites=true&w=majority";
    console.time('connectionTime');
    const client = new MongoClient(uri, { useNewUrlParser: true });
    client.connect(err => {
      console.timeEnd('connectionTime');
      const collection = client.db("test").collection("devices");
      // perform actions on the collection object
      client.close();
    });

我的代码在 AWS Lambda 函数中运行,我试图避免执行 https://docs.atlas.mongodb.com/best-practices-connecting-to-aws-lambda/ 中建议的 context.callbackWaitsForEmptyEventLoop = false;。我更喜欢在请求完成后关闭连接。

【问题讨论】:

    标签: node.js mongodb aws-lambda mongodb-atlas


    【解决方案1】:

    2-3 秒是相当合理的:mongo 需要一些时间来建立连接。根据您链接的文档:

    首次调用 Lambda 函数并且您的 AWS Lambda 函数中的 MongoDB 客户端连接到 MongoDB 时,初始启动成本大约为 5 到 10 秒。连接到分片集群的 mongos 比连接到副本集更快。在 Lambda 函数的生命周期内,后续连接将明显更快。

    使用节点客户端连接本地运行的 mongo 需要 1.5 秒,连接 atlas 沙箱实例需要 2 秒。

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 2019-12-03
      • 2019-06-10
      • 2020-01-15
      • 2017-12-12
      • 1970-01-01
      相关资源
      最近更新 更多