最初,我们有两个AWS EC2实例,其中node.js在具有粘性会话的负载均衡器后面运行 . 随着负载的增加,会添加更多实例 .
但我们面临着这种方法的问题 . 由于应用程序主要用于研讨会,负载通常会在很短的时间内(研讨会开始)增加,并且每个研讨会参与者都与前两个实例进行粘性会话,而新的实例几乎没有 . 因此,性能保持不佳 .
首先想到的是:让我们禁用粘性会话 . 但是这会破坏我们的websockets,因为它们需要粘性会话(至少这是我读过的) . 另一个问题是负载减少 . 实例关闭,套接字连接也会丢失 .
是否有一种方法可以在实例之间转换用户会话,或者让websockets在没有粘性会话的情况下工作(可能使用Redis)?
1 回答
解决方案是Application Load Balancer(见comment) .