2015-03-31 37 views
1

创建Meteor应用程序时,Mongo默认安装并在我运行我的应用程序时自动运行。过去,在其他非Meteor应用程序中,我一直试图将我的应用程序代码文件和数据库放在单独的服务器上,以确保我可以独立扩展它们。感觉就像这个默认的Mongo安装是一个简单的方法,只需Meteor就可以使用一个开箱即用的数据库,只是为了让你走。提前思考,我希望我的应用能够扩展,所以我应该开始考虑在单独的服务器上使用Mongo实例,如果是这样,我需要通过什么流程从Meteor应用中分离此默认Mongo实例?我应该使用流星附带的Mongo DB吗?

回答

1

流星伴随的mongodb实例仅适用于开发应用程序。在生产环境中,您应该安装自己的mongo实例或使用服务。

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

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

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

如果你有去撰写,这里是the guide与流星集成。

+0

如果设置环境变量,我认为这意味着应用服务器上运行的任何其他应用只能连接到由此变量定义的同一个Mongo实例?我可以使用,例如:var database = new MongoInternals.RemoteCollectionDriver(“mongodb://127.0.0.1:3001/my-database”);在我的Meteor应用程序之间切换Mongo服务器? – JoeTidee 2015-03-31 22:23:31

+0

如果你在全局范围内设置env vars(.bashrc,.profile等),那将是真的。推荐的方法是将脚本中的变量导出,然后启动应用程序,以便它们不泄漏到外部环境中。查看[这个问题](http://stackoverflow.com/questions/21447818/keep-meteor-running-on-amazon-ec2)了解更多详情。不,请不要在代码中设置连接值。 – 2015-03-31 22:27:46

+0

...但是如果我想在我的应用程序中切换两个Mongo实例呢? – JoeTidee 2015-04-01 20:54:53