heroku - 从 mlab 切换到 mongodb-atlas 后的连接问题
问题描述
我在 heroku 上运行了一个流星应用程序,直到上周数据库还在 mlab 上运行。然后我切换到 MongoDB Atlas,几天后应用程序运行非常缓慢。我从 M2 升级到 M5,所以还可以,但现在又变慢了。似乎存在网络输出限制,但使用 mlab 则没有。
这可能是查询的问题还是我做错了什么,我必须考虑什么?
有人知道这个问题或有使用流星/heroku/mongodb-atlas 组合的经验吗?
提前致谢
解决方案
在 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"
}
推荐阅读
- javascript - 收集 hmtl 文本并提交翻译?
- azure - 无法从 Azure 自动化帐户发送电子邮件
- mysql - 通过命令行将csv导入mysql,无需事先创建表
- javascript - 同一时刻有很多请求
- amp-html - 如何删除内联对象拟合:包含来自 amp img
- javascript - Select2 和 Jexcel 向下拉列表添加新选项
- python - Cx_Oracle:DatabaseError:ORA-28040:没有匹配的身份验证协议
- c++ - 我在 VS Code 中的终端不会打印任何内容或给我一个错误。不知道为什么不打印
- javascript - 如何在检查后禁用 asp:CheckBox 然后执行服务器端代码?
- python - 如何更改图表上 mplfinance 卷的格式?