Amazon-Ec2

為什麼在使用 AWS Elastic Load Balancer 時會出現 TCP 斷開連接?

  • August 1, 2010

我們在 AWS EC2 實例上執行我們的伺服器。伺服器必須在埠 80 上提供 HTTP,在埠 1935 上提供 RTMP (TCP)。

執行單個實例工作正常。但是,一旦我使用 Elastic Load Balancing 來平衡兩個 EC2 實例之間的負載,RTMP (TCP) 連接就會在一分鐘後失去。即使我們的應用程序應該容忍斷開連接,但它現在不能。

使用 haproxy 來平衡負載,我們不會遇到這些早期的中斷。彈性負載均衡器對我們很有吸引力,因為它具有自動擴展功能。

有什麼建議為什麼在我們使用 AWS Elastic Load Balancer 時會發生這種斷開連接?

感謝 l1x,我自己在 AWS 開發人員社區論壇上找到了答案。

聽起來正在發生的事情是連接超時。

如果在 60 秒內沒有在與負載均衡器的連接上寫入或讀取數據,則連接將關閉。

您可以定期向套接字發送某種心跳數據,以避免連接被關閉。您正在執行哪些類型的請求需要超過 60 秒且不發送/接收任何數據?

AWS 開發社區

不過根據 from the thread AWS 工程師正在調查這個問題。也許在不久的將來可以配置超時。

現在我將嘗試心跳解決方案。

引用自:https://serverfault.com/questions/165982