首页 > 解决方案 > 如何配置 AWS 负载均衡器使用特定的机器?

问题描述

我们有一个视频会议应用程序,它依赖于使用 WebSockets 的服务器。

客户端使用 WebSockets 与服务器通信。

我们想水平扩展我们的应用程序。所以我们一直在考虑使用 AWS 负载平衡。

基本上,我们的服务器应用程序将安装在多台 EC2 机器上,用户将被重定向到负载最低的机器。

问题是我们有一个特定的要求,即第一个连接到会议(机器)的用户,连接到同一会议的所有用户都应该转发到同一台机器。这样我们的服务器应用程序就可以识别同一会议的所有参与者。

所以基本上这里是过程:

有没有人知道如何配置 AWS 负载均衡器以这种方式工作?

谢谢。干杯,

标签: amazon-web-serviceswebsocket

解决方案


在尝试将旧版 Windows 应用程序迁移到 AWS 时,我遇到了类似的问题。我无法利用 AWS 资源来解决这个问题,但我想出了另一种方法。

我使用了开源 HAProxy 的粘性表来控制服务器分配(https://www.haproxy.com/blog/introduction-to-haproxy-stick-tables/)。我有一个用例,我必须将来自特定 IP 地址的所有请求定向到自动缩放组中的同一台服务器。

我在 ASG 中设置了一个 HAProxy 服务器组。在 HAProxy ASG 前面有一个 ELB,然后 HAProxy 服务器将流量路由到适当的后端服务器。设置听起来要复杂得多,但它达到了目的,并且仍然可以完美运行,没有任何问题。我设置它已经 3 年了。

如果这对您有帮助,请告诉我。很高兴分享设置细节和其他可能对您有帮助的东西。


推荐阅读