有大量教程如何使用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的一个项目与这么多的用户。事件如果它正在运行一个节点实例集群,它仍然是完全停机的单点故障。 –