6

我看过 3 篇关于使用 ELB 和 websockets 的不同帖子,但它们似乎都在使用 javascript 客户端或有一些其他变量不适用于我们的情况。

我们有多个在 Tomcat 中运行的 websocket 服务器。我们希望在它们前面使用 ELB 并让所有 websocket 客户端(即 100 个中的 100 个)连接到 ELB,它需要:

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

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

我们尝试在 TCP 模式下对此进行测试,但超过 100 个连接后,连接开始失败。但是,如果我们直接连接到单个 websocket 服务器,我们可以建立 80K(或更多)的 websocket 连接。

谢谢,鲍勃

4

1 回答 1

4

总之,通过 ELB 连接时,请注意以下几点:

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