我设计了一个 Node.JS 服务器,它允许用户使用 websockets 登录、加入房间并与该房间中的其他用户交换数据。但是我现在正在寻找一种方法来使这个设置可扩展。
我花了整个下午研究各种负载均衡器,例如 nginx 和 haproxy,但我仍然不知道如何组织我的设置。
最初用户可以登录并查看活动房间。让这部分可扩展没什么大不了的。然而,他们可以加入一个特定的房间,此时他们需要与房间中的其他人连接到同一个 node.js 实例。这是我很难弄清楚的部分。
目前我的解决方案是创建两种不同类型的 node.js 实例。一种处理登录和房间概览请求方法的通用类型和一种处理多个房间的房间类型。然后,通用类型跟踪哪个特定实例负责哪个房间,并可以将正确的地址传递给用户的应用程序。
但是我对这个解决方案不满意,所以我愿意接受建议。我知道这是一个相当模糊的问题,但我不是在寻找一个确切的解决方案,而是关于如何组织一切的提示。