Nettyは、select()と同じスレッドを送信する必要があります。
-
25-10-2019 - |
質問
Nettyがソケットのグループに送信するすべてのものを行うワーカースレッドを作成することは可能ですか?現在、NetTyはキューにアウトバウンドメッセージを投稿し、セレクターを目覚めさせ、データを未使用のバッファーにコピーして送信しようとするようです。これには時間がかかります。別のスレッドから直接送信することは可能ですか?
解決
それは不可能。 Nettyは、ユーザーがどのスレッドがwrite()を呼び出すかについて知りません。したがって、書き込みリクエストキューと、書き込みを実行するための専用ループが必要です。それ以外の場合、アプリケーションは、ユーザーが自分のアプリケーションをどのように書いたかに応じて、競合に苦しみます。負荷がかかると、専用のI/Oループを使用して、パイプラインを使用してプロトコルを実行すると、スループットが高くなるようです。
所属していません StackOverflow