【发布时间】:2018-07-01 04:02:54
【问题描述】:
最初,我们有两个带有 node.js 的 AWS EC2 实例,它们在带有粘性会话的负载均衡器后面运行。随着负载的增加,会添加更多实例。
但我们正面临这种方法的问题。由于外出申请主要针对研讨会,负载通常会在短时间内增加(研讨会开始),并且每个研讨会参与者对前两个实例都有一个粘性会话,而新的几乎没有。因此,性能一直很差。
首先想到的是:让我们禁用粘性会话。但这会破坏我们的 websocket,因为它们需要粘性会话(至少这是我读过的)。另一个问题是减少负载。实例关闭,套接字连接也丢失。
有没有办法在实例之间转移用户会话或让 websockets 在没有粘性会话的情况下工作(可能使用 Redis)?
【问题讨论】:
-
听起来你需要pub/sub broker
-
实际上我们正在使用 pubsub 和 redis,但是如果没有粘性会话,则无法建立 websocket 连接。
-
你的问题被标记为ELB,你知道ALB
-
不,我不是。基于内容的路由似乎是我的问题的解决方案。谢谢!
标签: node.js amazon-web-services load-balancing elastic-load-balancer sticky-session