2015-03-31 45 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