より多くのスループットを処理するためにUDPサーバーを最適化しようとしています。これはJava IOデータグラムソケット(NIOではなく)に基づいています。 このUDPサーバがUDPパケットを受信すると、このパケットを処理し、処理されたデータをバックグラウンドリソースに送信し、クライアントに応答する必要があります。 現在、このサーバは、着信パケットごとにスレッドを割り当てて処理します。データグラムチャネルをデータグラムソケットと比較してどのような利点がありますか
私はいくつかの記事を読んだことがあると思います。例えば、チャットサーバベースのTCP: のように、開いている接続の数千を同時に管理する必要がある場合があります。おそらくNIOの利点です。 いくつかの接続だけが、指定された時点で要求をサーバーに送信するため、非常に少数のスレッドで多数の接続(スレッドごとの要求)を処理できます。したがって、我々は各接続のスレッドを維持する必要はありません。 これはJava TCP NIOを使用する大きな利点です。
UDPでは、すべてのパケット(データグラム)は事実上自己完結型メッセージであり、各パケットは要求とみなすことができますが、NIO Datagramチャネルを使用しても、依然としてリクエストごとにスレッドを作成する必要があります。
だから、NIOデータグラムチャネルを使用する利点は何ですか?
お返事ありがとうございました!サーバーはエコーサーバーでもタイムサーバーでもありません。このUDPサーバがUDPパケットを受信すると、このパケットを処理し、処理されたデータをバックグラウンドMQに送信し、クライアントに応答する必要があります。現在、このサーバは、着信するUDPパケットごとに新しいスレッドを作成して処理します。私の質問は、私たちがNIOデータグラムチャンネルを使用すれば、どのような利点と違いがありますか? – Zhi
あなたの説明によれば、ほとんどまたはまったくありません。 – EJP