如何在插槽IO中使用PM2集群?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在插槽IO中使用PM2集群?相关的知识,希望对你有一定的参考价值。
我正在开发一个完全依赖于Socket.io的应用程序。众所周知,NodeJS默认只在一个核心上运行。现在我想在多个核心上扩展它。我发现难以使用PM2群集模式进行socketio工作。任何示例代码都会有帮助。
我正在使用炮兵进行测试。当应用程序在单核上运行时,我得到响应,而它在集群中运行时,响应将是NaN
答案
PM2文档说
确保您的应用程序是无状态的,这意味着流程中不存储本地数据,例如会话/ websocket连接,会话内存和相关。使用Redis,Mongo或其他数据库在进程之间共享状态。
Socket.io不是无状态的。
Kubernetes实现通过基于源IP到特定实例的路由来解决有状态问题。这仍然不是100%,因为某些来源可能会出现多个IP地址。我知道这不是PM2,但可以让您了解复杂性。
以上是关于如何在插槽IO中使用PM2集群?的主要内容,如果未能解决你的问题,请参考以下文章
nodejs - 对于在集群模式下运行的应用程序,我应该如何使用 nginx 和 pm2?