【问题标题】:Should i use the Mongo DB that comes with meteor?我应该使用流星附带的 Mongo DB 吗?
【发布时间】:2015-06-05 09:58:43
【问题描述】:

创建 Meteor 应用程序时,默认情况下会安装 Mongo,并在我运行我的应用程序时自动运行。过去,对于其他非 Meteor 应用程序,我总是尝试将我的应用程序代码文件和数据库放在不同的服务器上,以确保我可以独立扩展它们。感觉好像这个默认的 Mongo 安装是 Meteor 使用开箱即用的数据库的一种方便方式,只是为了让你继续前进。展望未来,我希望我的应用程序可以扩展,所以我是否应该开始考虑在单独的服务器上使用 Mongo 实例,如果是这样,我要通过什么过程将这个默认的 Mongo 实例从我的 Meteor 应用程序中分离出来?

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    meteor自带的mongodb实例仅供开发应用时使用。在生产环境中,您应该安装自己的 mongo 实例或使用服务。

    我强烈建议在生产中使用compose.io。我们对它们的体验非常好,最基本的部署是访问oplog,这对于扩展您的应用程序至关重要。

    无论哪种方式,在生产环境中,您都将通过环境变量为您的应用提供两个 URL:

    • MONGO_URL
    • MONGO_OPLOG_URL(这是可选的,但强烈推荐)

    如果你使用 compose,这里是 the guide 用于与流星集成。

    【讨论】:

    • 如果设置环境变量,我认为这意味着应用服务器上运行的任何其他应用程序只能连接到该变量定义的同一个 Mongo 实例?我可以使用吗,例如: var database = new MongoInternals.RemoteCollectionDriver("mongodb://127.0.0.1:3001/my-database");在我的 Meteor 应用程序中切换 Mongo 服务器?
    • 如果您在全局范围内设置环境变量(.bashrc、.profile 等),那将是正确的。推荐的方法是在脚本中导出变量,然后启动应用程序,这样它们就不会泄漏到外部环境中。有关详细信息,请参阅this question。不,请不要在代码中设置连接值。
    • ...但是如果我想在我的应用程序中的两个 Mongo 实例之间切换怎么办?
    • 在运行时?我建议阅读this。您真的不想在代码中添加看起来像生产凭据的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多