Socket.io nodejs集群哈希负载均衡与代理。

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

我建立了一个应用程序,人们根据URL中的房间id通过websocket连接到房间,比如app.com9l4CvjXFxn 。事情是我想运行多个节点实例,以保证一个永远向上的实例,以防其他实例崩溃,也是因为听说负载均衡不错。我还有静态UI内容要服务。我只用socketio,没有REST api。

我现在的计划是使用负载平衡和服务代理,如nginx或haproxy。我从来没有使用过它们中的任何一种。我也想过使用PM2来轻松运行许多节点实例。该应用可能会部署在AWS上。

Web套接字是通过HTTP1升级到socketio中的某个路径发生的,我已经把它设置为root 。所以在最初的升级请求中,我不能改变路径,但我可以把东西放到url查询或cookie头中。

所以负载均衡器的主要需求是将某个房间的websocket升级一致地导向一个特定的节点实例,因此我想到了哈希负载均衡,但我不知道如何做到这一点,如果这是正确的方法。你能帮忙吗?谢谢!

websocket socket.io load-balancing haproxy pm2
1个回答
0
投票

无法解决这个问题,可能是它的问题 "不对"。这是因为我没有持久性,我把我的对象保存在node中。如果我的node实例是无状态的,并使用redis,我可以旋转了许多节点,而不会有这个问题。这是下一步,虽然因为,还是一个早期的应用。Checkiout though: quarantime.io :)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.