これはあなたの質問に対する直接的な回答ではありませんが、参考になれば幸いです。以下に、探している答えを特定する方法を説明します。これは、私が最近、次のプロジェクトのために自分で行ったことです。
OIO (旧 IO) と比較して、Netty フレームワークと NIO の非同期の性質により、アプリケーションのメモリと CPU の使用特性が大幅に向上します。Netty でのバッファーの処理方法も、バイト バッファーのコピーを回避するのに役立つため、有益です。ポイントは、すべてのスレッド プールと NIO の詳細が処理され、ビジネス ロジックに集中できるようになることです。あなたはNIOセレクターについて言及しましたが、それから恩恵を受けるでしょう。Netty の優れた点は、その実装が既に行われているため、自分でその実装について心配する必要なく利益を得られることです。
クライアント側についての私の理解では、クライアント側はサーバー側と非常に似ており、それに見合ったパフォーマンスの向上が得られるはずです (ビジネス ロジックがパフォーマンスの問題を引き起こさない限り)。
私のアドバイスは、多かれ少なかれあなたが望むことをするプロトタイプを一緒に投げることです. 時間のかかる詳細は省き、機能するものを作成するために必要な基本的な Netty ハンドラーを追加するだけです。
次に、jmeterを使用してクライアントを呼び出し、サーバーとクライアントに負荷をかけます。jconsoleやjvisualvmなどを使用すると、負荷がかかっているクライアントとサーバーのパフォーマンス特性が表示されます。jprobeを試すこともできます。スループットを示すリスナーを jmeter に追加できます。サーバーモードでjmeterを使用し、クライアントを別のマシンで、サーバーをさらに別のマシンで使用することをお勧めします。これは少し前もっての作業ですが、先に進むことにした場合は、これらのツールを準備してさらにテストを進めることができます。
無関係なパフォーマンスの低いコンポーネントを導入しない適切な Netty 実装により、探しているパフォーマンス特性が得られると思いますが、確実に知る唯一の方法は、予想される負荷の下でシステムを測定することです。
予想される負荷がどのように見えるか、およびそのような負荷の下で望ましいパフォーマンス特性を定義する必要があります。これらの入力が与えられれば、システムを測定して、期待に応えられるかどうかを調べることができます。個人的には、それが望ましい方法で動作するかどうかは誰にも言えないと思います。あなたはそれを測定する必要があります。システムがニーズを満たすことができるかどうかを確認する唯一の信頼できる方法です。
直接の Java NIO よりも、Netty のような (わずかに) 高レベルのソケット フレームワークを使用したいと考えています。
これが正しいアプローチです。独自の NIO サーバーとクライアントを実装してみることができますが、高度に洗練されたフレームワークの利点をすぐに利用できるのに、なぜそれを行うのでしょうか?