有大量教程如何使用socket.io和node.js開發聊天應用程序,毫無疑問事件驅動的優點是節點具有做聊天應用程序的優勢。但是最近這種想法浮現在我的腦海裏,當我部署應用程序時,如何維持我的聊天應用程序?想象有成千上萬的用戶正在積極聊天。node.js應用程序部署使用pm2無宕機
本文中https://futurestud.io/tutorials/pm2-cluster-mode-and-zero-downtime-restarts明確指出集羣技術需要特別小心,嗯有什麼辦法可以解決這個問題嗎?
重新啓動需要幾秒鐘。我測試了我的聊天應用。它照常工作。我認爲它會有分秒的停機時間,但之前建立的套接字並未崩潰。 –
使用redis進行會話的socket.io?你需要使用socket.io進行會話? –
您是對的,但如果您需要更新PM2本身,停機時間會比此更長。如果您需要更新NodeJS itsel,則相同。如果您因任何原因需要重新啓動機器,則會丟失所有羣集實例。這就是爲什麼我說PM2不是這個最好的工具(並得到了一個downvote)。這是一個很好的開始,但正如你所說的,「成千上萬的用戶」依賴於它。我永遠不會,永遠,用PM2的一個項目與這麼多的用戶。事件如果它正在運行一個節點實例集羣,它仍然是完全停機的單點故障。 –