Nettyは、select()と同じスレッドを送信する必要があります。

StackOverflow https://stackoverflow.com/questions/8320290

  •  25-10-2019
  •  | 
  •  

質問

Nettyがソケットのグループに送信するすべてのものを行うワーカースレッドを作成することは可能ですか?現在、NetTyはキューにアウトバウンドメッセージを投稿し、セレクターを目覚めさせ、データを未使用のバッファーにコピーして送信しようとするようです。これには時間がかかります。別のスレッドから直接送信することは可能ですか?

役に立ちましたか?

解決

それは不可能。 Nettyは、ユーザーがどのスレッドがwrite()を呼び出すかについて知りません。したがって、書き込みリクエストキューと、書き込みを実行するための専用ループが必要です。それ以外の場合、アプリケーションは、ユーザーが自分のアプリケーションをどのように書いたかに応じて、競合に苦しみます。負荷がかかると、専用のI/Oループを使用して、パイプラインを使用してプロトコルを実行すると、スループットが高くなるようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top