UDPトラフィックの負荷分散が可能なロードバランシングソリューションを設定しようとしています。私の場合は、ロードバランサにUDPパッケージを送信するいくつかの異なるサーバがあります。各UDPパッケージ本体の中には、MSG-IDフィールドがあります。理想的には、そのMSG-IDに基づいてUDPトラフィックを一連のサーバーにロードバランスする必要があります。つまり、同じMSG-IDを持つ2つのUDPパッケージを同じサーバーに送信する必要があります(後で処理するために同じMSG-IDを持つ2つのUDPパッケージを組み立てて完全なパッケージを作成したいからです)。しかし、それが不可能な場合は、発信元/送信者IPに基づく解決策で十分でしょう。UDPボディ内のセッションIDを使用したカスタムバランシング方式を使用したUDPロードバランシング
ハプロキシはUDPをサポートしていないので、nginxをチェックしています。しかし、nginx-plus(無料のソリューションではない)だけがip_hashメソッドに基づいてロードバランスを行うことができるようですか?
は、私が知りたい:
- 私はUDP本体内部のカスタムMSG-IDに基づいて負荷分散を処理するのに役立つ最高のオープンソースソリューションは何ですか。
- nginx(フリー/オープンソース)バージョンは、少なくともip_hashメソッドに基づくUDP負荷分散をサポートしていますか?
- UDP送信元/送信者IPを偽装することはできますか。基本的に、私は複数のサーバー(サーバーD)からUDPパッケージを受信し、サーバー(サーバーB、C)のセットに転送するサーバー(サーバーAなど)がある場合、私は、サーバB、Cが、サーバDではなく、Aと表示されたIPを持つパッケージを受け取るようにしたい。
- UDPを読み込んでTCPパッケージを形成し、ロードバランサとTCP接続を維持するカスタム層を書くことの欠点新しく形成されたTCPパッケージその場合、nginxまたはhaproxyの両方を使用することができます。
ありがとうございます。
ロードバランシングでは、アウトオブオーダーのパケット配信が発生する可能性があります。 TCPはこれを処理できますが、パフォーマンスが低下する可能性があります。これは本当にUDPを混乱させる可能性があります。 UDPはFire-and-forgetプロトコルであり、配信保証はありません。多くのリアルタイムプロトコル、例えばVoIP、UDPを使用します。 VoIPには、アウトオブオーダーのパケット配信に問題があります。 –