如何在插槽IO中使用PM2集群?

问题描述 投票:4回答:1

我正在开发一个完全依赖于Socket.io的应用程序。众所周知,NodeJS默认只在一个核心上运行。现在我想在多个核心上扩展它。我发现难以使用PM2群集模式进行socketio工作。任何示例代码都会有帮助。

我正在使用炮兵进行测试。当应用程序在单核上运行时,我得到响应,而它在集群中运行时,响应将是NaN

When Ran Without Cluster

node.js socket.io pm2
1个回答
0
投票

PM2文档说

确保您的应用程序是无状态的,这意味着流程中不存储本地数据,例如会话/ websocket连接,会话内存和相关。使用Redis,Mongo或其他数据库在进程之间共享状态。

Socket.io不是无状态的。

Kubernetes实现通过基于源IP到特定实例的路由来解决有状态问题。这仍然不是100%,因为某些来源可能会出现多个IP地址。我知道这不是PM2,但可以让您了解复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.