我一直是ruby/php的Web應用程序開發人員,我已經習慣了服務器實例的水平伸縮以處理更多請求的想法。水平縮放 - 表示位於負載均衡器後面的應用程序的單獨實例,它們不共享任何內容,並且彼此不知道。NodeJS水平縮放
我的主要問題是,因爲Node.js和它的重點evented-io允許單個框運行node.js服務器來處理'數千'的同時請求 - 是負載平衡/水平縮放使用擴展nodejs應用程序?是否縮放一個節點應用程序限於垂直縮放(在問題時拋出更多的RAM /處理能力)?
我的第二個問題與node.js水平縮放和websockets有關。我見過很多使用websockets的Node.js的「聊天」教程。由於websockets在瀏覽器和服務器之間有效地保持開放的通信線路,因此PHP/Ruby世界中典型的水平縮放體系結構導致類似於鏈接中所解釋的那種聊天應用程序打破 - 因爲新的websocket連接請求將被分配給不同的流程/服務器,並且沒有一箇中央資源會跟蹤所有連接的客戶端?
這是一個老問題,但我使用mongodb來存儲和檢索我所有的聊天應用程序數據。由於我想橫向擴展我的應用程序,因爲當我有多個服務器時,我的聊天應用程序不起作用。我應該做什麼,我應該完全刪除mongodb並使用redis?或者有更好的解決方案。 – DragonBorn