2012-10-10 34 views
0

我想知道你在DotCloud上關於這個設置的經驗,以及關於每個人的其他經驗。我的問題是,DotCloud上的Nginx + NodeJS + MongoDB

  1. 它是如何縮放的?
  2. 什麼是Nginx在這個設置中的角色,僅用於請求調度還是它也支持負載均衡?
  3. MongoDB佔用多少內存? MongoDB中有沒有內存管理優化?
  4. NodeJS消耗多少內存?

我知道這一切都取決於什麼樣的應用程序,但我只是假設NodeJS是一個高吞吐量的解決方案,所以實際需要的內存應該比普通的Web服務器少(?)。

+1

nginx通常不是node.js堆棧的一部分。如果你願意,你可以使用它來提供靜態內容,但是如果你在dotCloud上運行正常的node.js服務,它不包括nginx。 –

回答

2

所以就像@Ken Cochrane所說的那樣,Node服務中沒有nginx,這是不需要的。 你可能不想要它,如果你有靜態內容,你真的想用nginx來交付,而不是通過Node,你可以爲它添加一個靜態服務。

負載均衡由我們的網關完成,將您的流量重定向到不同的實例或縮放的服務。這是如果你已經擴展你的服務。

只要您的應用程序按比例設計,Node.js就可以完美縮放。如果您正在認真確保您的會話在緩存或數據庫中共享,則無法擴展它的魔力。如果丟失一個實例不是問題,因爲Node服務中沒有內存保存,並且如果處理db重新連接,那麼您可能會很好地擴展。

mongoDB使用多少不可能說這完全取決於您的應用程序。我們擁有龐大的mongoDB,從抓人的人到簡單的人,都使用這麼多的內存。這取決於我們的應用程序的成功,但。這真的很難留下來。但是你可能不會打1G一段時間。

關於節點。您不希望在內存中存儲任何內容,因爲它不在您的實例之間共享。所以除非你非常特別的做一些你的Node實例不應該佔用太多的內存。對於普通應用程序,256MB應該沒問題,甚至更少。