6

Websocket での ELB の使用に関する 3 つの異なる投稿を見てきましたが、それらはすべて JavaScript クライアントを使用しているか、状況に当てはまらない他の変数を持っているようです。

Tomcat で実行されている複数の websocket サーバーがあります。それらを ELB で前面に出し、すべての Websocket クライアント (つまり、数百から 1000) を ELB に接続させたいと考えています。

  • アップグレード要求/接続を Websocket サーバーの 1 つに転送します
  • 次に、その接続をスティッキーにして、接続の存続期間中、すべての双方向トラフィックが同じクライアントとサーバーの間を行き来するようにします

これは今日のELBで可能ですか? 可能であれば、実行する必要がある特別な構成/セットアップはありますか? Amazon ELB が TCP モードでサポートする同時接続数にはどのような制限がありますか?

これを TCP モードでテストしてみましたが、接続数が 100 を超えると、接続が失敗し始めます。ただし、1 つの Websocket サーバーに直接接続すると、80K (またはそれ以上) の Websocket 接続を確立できます。

ありがとう、ボブ

4

1 に答える 1

4

要約すると、ELB 経由で接続する場合は、次の点に注意してください。

  • 多数の接続が予想される場合は、サポート リクエストを EC2 に送信して、ELB を「事前ウォームアップ」するよう依頼してください。これには、タイム ウィンドウ、接続数、要求/応答のメッセージ サイズ、メッセージの頻度、およびその他のパラメータを提供するフォームに記入する必要があります。内部では、ELB は、構成されたバックエンド インスタンス全体に計画された負荷を分散できるマシンを割り当てています。
  • 接続が永続的である場合 (websocket で要求されたように)、ELB には 1 分間のデフォルトのアイドル タイムアウトがあることを知っておくことが重要です。その後、トラフィックが見られない場合、接続は閉じられます。その時間を 15 分に増やすように要求できます。注: これが、ELB が許可するよりも長く接続を開いたままにしておく必要がある場合に、ping/ハートビート メカニズムを利用することが重要である理由です。
于 2014-05-03T19:12:02.013 に答える