是否可以在TCP模式下使用Amazon ELB在多个基于Tomcat的websocket服务器之间传播websocket连接?

Bob*_*mer 6 amazon-ec2 websocket

我已经看到3个关于使用带有websockets的ELB的不同帖子,但它们似乎都在使用javascript客户端或者有一些其他变量不适用于我们的情况.

我们有多个在Tomcat中运行的websocket服务器.我们希望用ELB支持它们并将所有websocket客户端(即1000个100)连接到ELB,这需要:

  • 将升级请求/连接转发到我们的websocket服务器之一
  • 然后使该连接变粘,以便所有双向流量在连接的生命周期内在同一客户端和服务器之间进行

今天ELB可以实现吗?如果可能,是否需要进行任何特殊配置/设置?Amazon ELB在TCP模式下支持的并发连接数有多少限制?

我们尝试在TCP模式下测试它,但超过几百个连接,连接开始失败.但是,如果我们直接连接到单个websocket服务器,我们可以建立80K(或更多)websocket连接.

谢谢,鲍勃

Bob*_*mer 5

综上所述,通过ELB连接时请注意以下事项:

  • 如果您预计会有大量连接,请向 EC2 提交支持请求,要求他们“预热”您的 ELB。这需要填写一个表格,为他们提供时间窗口、连接数、请求/响应消息大小、消息频率和一些其他参数。在幕后,ELB 正在分配能够跨配置的后端实例分配计划负载的机器
  • 如果您的连接是持久的(就像我们对 websocket 所要求的那样),那么重要的是要知道 ELB 有 1 分钟的默认空闲超时。在此之后,如果没有看到任何流量,则连接将关闭。您可以要求他们将时间延长至 15 分钟。注意:这就是为什么如果连接需要保持打开时间超过 ELB 允许的时间,那么利用 ping/心跳机制很重要。