我们正在AWS EC2实例上运行我们的服务器。 服务器必须在端口80上提供HTTP,在端口1935上提供RTMP(TCP)。
运行一个实例工作正常。 但是,只要我使用Elastic Load Balancing来平衡两个EC2实例之间的负载,一分钟后RTMP(TCP)连接就会丢失。 即使我们的应用程序应该容忍不满,现在不适用。
使用haproxy来平衡负载,我们不会遇到这些早期的不满。 Elastic Load Balancer对我们很有吸引力,因为它具有自动缩放function。
有什么build议为什么当我们使用AWS Elastic Load Balancer时会发生这种断开连接?
感谢l1x,我在AWS开发者社区论坛上自己find答案。
这听起来像是正在发生的事情是,连接超时。
如果在60秒内在负载均衡器的连接上没有数据写入或读取,则连接closures。
您可以定期向套接字发送某种心跳数据,以避免连接closures。 你需要什么types的请求超过60秒,不发送/接收任何数据?
AWS Developet社区
根据AWS的工程师正在调查这个问题。 也许超时在不久的将来是可configuration的。
现在我会尝试心跳解决scheme。
你需要深入调查这个问题,让他们为我提供支持。 这是太less的信息来回答你的问题远程:)