为什么使用 AWS Elastic Load Balancer 时会出现 TCP 断开连接的情况?

为什么使用 AWS Elastic Load Balancer 时会出现 TCP 断开连接的情况?

我们在 AWS EC2 实例上运行服务器。服务器必须在端口 80 上提供 HTTP,并在端口 1935 上提供 RTMP (TCP)。

运行单个实例时一切正常。但是,当我使用 Elastic Load Balancing 在两个 EC2 实例之间平衡负载时,RTMP (TCP) 连接会在一分钟后丢失。尽管我们的应用程序应该能够容忍断开连接,但现在却不能。

使用 haproxy 来平衡负载,我们不会遇到这些早期断开连接的情况。不过,Elastic Load Balancer 因其自动扩展功能而对我们很有吸引力。

当我们使用 AWS Elastic Load Balancer 时,有什么建议为什么会发生这种断开连接?

答案1

感谢 l1x,我在 AWS 开发者社区论坛上找到了答案。

听起来好像发生的是连接超时了。

如果 60 秒内没有在与负载均衡器的连接上写入或读取任何数据,则该连接将关闭。

您可以定期向套接字发送某种心跳数据,以避免连接被关闭。您执行的哪些请求耗时超过 60 秒,并且不发送/接收任何数据?

AWS 开发者社区

根据论坛帖子,AWS 工程师正在调查此问题。也许在不久的将来可以配置超时。

现在我将尝试心跳解决方案。

答案2

我想你需要更深入地调查这个问题,要求他们为你提供支持。这些信息太少,无法远程回答你的问题 :)

相关内容