有很多教程如何使用socket.io和node.js开发聊天应用程序,毫无疑问,节点的事件驱动优势具有进行聊天应用程序的优势。但最近我想到了这个想法,我在部署应用程序时如何维持聊天应用程序?想象有成千上万的用户正在积极聊天。
在本文https://futurestud.io/tutorials/pm2-cluster-mode-and-zero-downtime-restarts中明确指出群集技术需要额外的关注,嗯有没有办法解决这个问题?
答案 0 :(得分:0)
PM2不是正确的工具。它很棒,但对于那种编排来说太有限了。
最佳解决方案是将服务器置于负载均衡器后面,并运行应用程序的并行实例轮流处理传入请求。这是Docker等容器最常见的用例之一。
一个很好的例子(我目前正在使用基于socket.io的聊天的约会应用程序中生产的那个)是中间层的Marathon和Marathon LB。我们让他们在AWS中运行,在Elastic Load Balancer(ELB)后面。
您实际上可以通过Heroku获得类似的内容,但可能会有点困难,因为您会受到其Load Balancer功能的限制。在socket.io中,您可以使用Redis会话驱动程序来处理分布式会话。