gpt4 book ai didi

node.js - 如何使带有房间的 node.js 服务器可扩展

转载 作者:搜寻专家 更新时间:2023-11-01 00:33:52 25 4
gpt4 key购买 nike

我设计了一个 Node.JS 服务器,允许用户使用 websockets 登录、加入房间并与房间内的其他用户交换数据。但是,我现在正在寻找一种方法来使此设置具有可扩展性。

我花了整个下午研究各种负载均衡器,例如 nginx 和 haproxy,但我仍然不知道如何组织我的设置。

最初用户可以登录并查看事件房间。使这部分可扩展没什么大不了的。然而,他们可以加入一个特定的房间,此时他们需要连接到与房间中其他人相同的 node.js 实例。这部分我很难理解。

目前我的解决方案是创建两种不同类型的 node.js 实例。一种处理登录和房间概览请求方法的通用类型和一种处理多个房间的房间类型。然后,通用类型会跟踪哪个特定实例负责哪个房间,并可以将正确的地址传递给用户的应用程序。

但是我对这个解决方案并不满意,所以我愿意接受建议。我知道这是一个相当模糊的问题,但我并不是在寻找确切的解决方案,而是在寻找有关如何组织一切的提示。

最佳答案

udidu 提到了一个可能的解决方案,但要扩展,你应该看看可扩展的 pub/sub 解决方案; Redis ,一个流行的数据存储,has pub/sub built in我经常使用它,效果很好。

使用 Redis(或其他一些系统)来帮助确保您的 Node.js 应用程序的每个实例都收到有关谁在哪个房间聊天的信息,从而消除了一个房间中的所有用户都连接到同一个 Node.js 实例的依赖性。

Redis chat w/ PubSub

关于node.js - 如何使带有房间的 node.js 服务器可扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13070853/

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