我们有一个视频会议应用程序,它依赖于使用WebSockets的服务器。
客户端使用WebSockets与服务器通信。
我们想横向扩展我们的应用程序,所以我们一直在考虑使用AWS负载平衡。
基本上,我们的服务器应用程序将安装在几台EC2机器上,用户将被重定向到具有最低负载的机器。
问题是我们有一个特定的要求,例如,连接到会议(机器)的第一个用户,连接到同一会议的所有用户都应该被转发到同一台机器。这样我们的服务器应用程序就可以识别同一会议的所有参与者。
基本上是这样的过程:
- 第一个用户接入会议A =>转发到具有最低负载的机器(我们称之为:X)
- 会议A =>转发到X机
- 第一个用户接入会议B =>转发到具有最低负载的机器(我们称之为:Y)
- 第二个用户已接入会议B =>转发到机器Y
- 等。
有人知道如何配置AWS负载平衡器以这种方式工作吗?
谢谢。干杯,
我在尝试将遗留windows应用程序迁移到AWS时遇到了类似的问题。我无法利用AWS的资源来解决这个问题,但我找到了另一种方法。
我已经使用了开源的HAProxy的粘性表来控制服务器分配(https://www.haproxy.com/blog/introduction-to-haproxy-stick-tables/)。我有一个用例,我必须将来自特定IP地址的所有请求定向到自动伸缩组中的同一服务器。
在ASG内配置HAProxy服务器组。在HAProxy ASG前有一个ELB,然后HAProxy服务器将流量路由到适当的后端服务器。这个设置比听起来复杂得多,但它达到了目的,并且仍然完美地运行,没有任何问题。从我设置到现在已经3年了
如果这对你有帮助,请告诉我。很高兴分享设置细节和其他可能对您有所帮助的东西。