AWS EC2上的Websocket负载平衡

我们正在构建使用AWS EC2上的WebSockets的缩放应用程序。 我们正在考虑为此使用默认的ELB(Elastic Load Balancing),但这不必要地使负载均衡器本身成为流量大的操作的瓶颈(请参阅此相关的线程),因此我们正在寻找一种方法来发送客户端连接“好实例”的连接细节。 但是,Elastic Load Balancer API似乎不支持“给我(良好实例的公共)连接细节”类的查询,这很奇怪,因为这是任何负载平衡器的核心功能。 也许我只是没有看到正确的地方?

更新:

目前,我们正在研究两种使用默认实现的简单解决方案:

  • 在TCP模式下使用ELB,该模式通过ELB隧道传输所有流量。
  • 只需连接到ELB连接到您的GET实例的公共IP即可。 第二种解决方案需要启用公共IP,但不会通过ELB路由所有流量。
  • 我很担心这最后一部分,因为我认为ELB与它给你的实例不在同一座建筑物中。 但我认为,它通常位于同一建筑物中,或者与实例有其他高速连接? 在这种情况下,隧道开销可以忽略不计。

    这两种解决方案似乎都是同样可行的,还是我监督着某些事情?


    如果你的应用程序设法使ELB成为瓶颈,那么你是一条相当大的鱼。 你为什么不尝试首先使用他们的负载均衡器相信他们的工作是正确的? 要使它“更好”是很困难的,关于这一点最困难的部分是首先确定什么是“更好”。 你肯定没有很好地定义你的问题,所以我非常肯定你使用的只是他们的负载平衡器。

    在某些情况下,开发自己的负载平衡逻辑可能是有意义的,特别是如果您的机器使用率取决于ELB系统本身可访问的非常特殊的度量标准。


    是的,我会说这两种解决方案都是可行的。

    第二个优点是,它允许更大的自定义负载平衡逻辑,您可能想要实现(提供ELB循环的改进),并在初始HTTP GET请求之后将请求分派到您方便的服务器。

    缺点可能在安全方面。 目前还不清楚安全性和SSL是否是您的要求的一部分,但如果是这样,第二种解决方案会迫使您在ec2实例级别处理它,这可能很不方便并影响每个节点的性能。 否则websocket通信可能不安全。

    链接地址: http://www.djcxy.com/p/87161.html

    上一篇: Websocket Load Balancing on AWS EC2

    下一篇: way TLS/HTTPS with ELB