サーバ側から見れば、NIOの利点は、IO接続をブロックする1つのスレッドと比較して、より少ないスレッドで複数のネットワーク接続を管理できることです。クライアント側でnetty4 NIOを使用しているbenifitと、1つのスレッドごとのスレッド・ブロックIOとの比較は何ですか?
しかし、同時に1000台のサーバーに接続するIOクライアントを使用している場合、これらの接続IOをより少ないスレッドで管理する同様の方法がありますか。私はNetty 4 multiple clientでアプローチを試み、それが作成した各チャンネルの "リーダー"スレッドを生成することがわかった。
だから、私の質問は以下のとおりです。
1)クライアント側でネッティー/ NIOを使用してのメリットは何ですか? 2)クライアント側のスレッド数を減らして複数の接続を管理することは可能ですか?
ありがとうございます!
私はgithubののコードサンプルをアップロードした:https://github.com/hippoz/ogop-lseb
サンプルサーバ/クライアントクラスはmoc.ogop.ahsp.demo.nio.MultipleConnectionNioMainとmoc.ogop.ahsp.demo.nio.NettyNioServerMain
です
なし、あなたはいつもではないアウトバウンド多数の接続を有することを計画している場合を除き。 – EJP
はい、実際には、各クライアント/サーバー間で永続的な接続を使用しています。各クライアントは同時に約1000台のサーバーに接続する可能性があります。 –
その場合(「永続的接続」のままではありません)、かなり複雑なコーディングを犠牲にしてスレッドを節約することができます。最初に 'java.net'を使って作業し、スケーラビリティの問題があるかどうかを確認します。 – EJP