【问题标题】:connection issues after switching from mlab to mongodb-atlas从 mlab 切换到 mongodb-atlas 后的连接问题
【发布时间】:2021-01-04 05:00:06
【问题描述】:

我有一个在 heroku 上运行的流星应用程序,直到上周数据库还在 mlab 上运行。 然后我切换到 MongoDB Atlas,几天后应用程序运行非常缓慢。 我从 M2 升级到 M5,所以还可以,但现在又变慢了。 似乎有网络输出限制,但使用 mlab 则没有。

可能是查询有问题还是我做错了什么,我需要考虑什么?

有人知道这个问题或有使用meteor/heroku/mongodb-atlas组合的经验吗?

提前致谢

【问题讨论】:

  • 我要做的第一件事是验证 oplog tailing 是否与新数据库一起工作。如果不是这样可以解释为什么可能会有更多的网络流量,因为那时流星会轮询。
  • @ChristianFritz 我创建了一个对本地具有读取权限的用户,并在 heroku 中为 MONGO_OPLOG_URL 设置环境变量。但是我如何才能验证 oplog tailing 是否确实有效?
  • 您可以尝试将console.log(process.env) 添加到您的代码中,以确保设置和使用环境变量。如果是,那么它应该可以工作,否则流星会​​抱怨。但也许设置时出了点问题?不过这只是一种预感。您的问题可能完全源于其他原因。

标签: heroku meteor mongodb-atlas


【解决方案1】:

在 Heroku 中,当您选择 MLab 服务时,数据库很可能与您的 Meteor 实例在同一个 VPC 中提供。我首先要确保我在与 Heroku 相同的区域和服务提供商中运行 Atlas MongoDB。 (例如 Meteor 和 Mongo 都在 AWS eu-central 上运行)。你做了这个了吗? https://www.mongodb.com/blog/post/integrating-mongodb-atlas-with-heroku-private-spaces

您是否超出了 Mongo 集群的限制? https://docs.atlas.mongodb.com/reference/atlas-limits/ 这对于避免为您不需要的服务规模付费很重要。

Monti APM (https://montiapm.com/) 为 Meteor 提供 8 小时保留的免费监控服务。这可以帮助您了解您的 Oplog 事务和数量。

我不知道你是如何设置 Oplog 的,但你也可以试试这个(旧的)Mongo URI。我仍然将它与最新的 Meteor 版本一起使用,我很好:

"env": {
      "MONGO_URL": "mongodb://yourapp:XXXXXXXXXXXXXXXX@yourapp-shard-00-00-zc1lg.mongodb.net:27017,yourapp-shard-00-01-zc1lg.mongodb.net:27017,yourapp-shard-00-02-zc1lg.mongodb.net:27017/meteor?ssl=true&replicaSet=yourapp-shard-0&authSource=admin",
      "MONGO_OPLOG_URL": "mongodb://yourapp-oplog:XXXXXXXXXXXXXXXX@yourapp-shard-00-00-zc1lg.mongodb.net:27017,yourapp-shard-00-01-zc1lg.mongodb.net:27017,yourapp-shard-00-02-zc1lg.mongodb.net:27017/local?authSource=admin&ssl=true&replicaSet=Yourapp-shard-0"
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 2017-08-27
    • 2020-08-11
    相关资源
    最近更新 更多