gpt4 book ai didi

node.js - 在多核服务器中将 socket.io 与集群一起使用的好方法?

转载 作者:IT王子 更新时间:2023-10-29 05:56:55 25 4
gpt4 key购买 nike

我创建了一个在单核中运行良好的 nodejs 应用程序。此应用程序使用 socket.io 进行轻便快速的通信。

现在,我想垂直扩展我的应用程序,通过使用 nodejs 中的 cluster 模块使其能够在多核系统上运行。

我的应用程序中的所有内容都将数据存储在 Redis 中,因此,处理一些基本数据和 session 没有问题。

但是,当我使用集群生成多个工作进程时,似乎每个工作进程都有自己的套接字处理。

例如,假设有一个名为“客人”的聊天室。

用户A和用户B连接到房间,他们被分发到不同的worker进程。

由于它们在不同的进程中,并且这些进程不共享套接字监听器,因此用户 A 和用户 B 无法相互通信。

解决这个问题的好方法是什么? socket.io 是否支持多核系统?

socket.io是不是只能单核使用?

最佳答案

您可以像往常一样使用 socket.io,但在后台使用 redis 存储。它还将支持 socket.io 上的多个实例,而无需任何外部库。它甚至支持多个实例上的房间。

如何使用 Redis 设置 socket.io 的链接:Using Multiples Nodes/Processes with socket.io

关于node.js - 在多核服务器中将 socket.io 与集群一起使用的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com