我有一个在多个 AWS 实例上运行的应用程序,我需要使用粘性会话对它们进行负载平衡。AWS 负载平衡对 HTTP 运行良好,但 AWS 不提供对 TCP 执行此操作的选项,这对我来说是一个问题,因为我正在使用通过 TCP 传输的 websocket,这些 websocket 也需要进行负载平衡和粘性会话。
我该怎么做?或者,如果我不能,有什么可行的替代方案?我的最终目标是拥有此应用程序的多个副本,位于不同的服务器上,但用户可以通过单个链接访问它们,甚至他们都没有意识到。我不太关心如何实现这一点。
答案1
事实证明,亚马逊的应用程序负载均衡器 (ALB) 通过 HTTP 侦听器发送 websocket,因此我从 ELB 切换到 ALB 后就能够实现我想要的功能,而无需粘性会话 TCP。