私は、マルチスレッドクライアントが毎秒サーバーの何千もの呼び出しを実行するクライアントとサーバーのペアで作業しています。最優先事項は、最小限の待ち時間を達成することです。スループットも高いはずです。クライアントとサーバーの両方がJavaで書かれているため、通信のセマンティクスは非常に単純です(put/get操作)。軽量で低遅延のJavaネットワークライブラリですか?
これらの要件に最適なJavaネットワークライブラリ/フレームワークは何ですか? Tomacat/Jettyのようなサーバーは重量があるようです。私はMINAやNettyについて考えていますが、これらの非同期ライブラリが重い作業負荷のもとで安定した低遅延を提供するかどうかはわかりません。
あなたは「クライアントが何千もの呼び出しを実行する」と話しています。あなたは本当に* 1 *(またはごくわずかなクライアント)しか持っていませんか? Java nio(netty/mina)に基づくフレームワークは、非常に多くのクライアント(同時接続)を処理しているときに輝きますが、必ずしもこれらのクライアントが多くの呼び出しを実行するわけではありません。 tomcatはhttpを使用しますが、mina/nettyはtcpを直接使用する方が適しています。 – MartinK
はい、いくつかのクライアントアプリケーションしかなく、各アプリケーションのスレッド数は比較的少ない(〜20)。したがって、接続の総数は極端に多くはありません。 – user1128016
ほとんどすべてのノンブロッキングネットワークライブラリは、メッセージを処理するときに多くのゴミを生成します。 GC干渉があるとリアルタイムになることが非常に難しくなります。ごみゼロを生み出す[CoralReactor](http://www.coralblocks.com/index.php/category/coralreactor/)をご覧ください。 – rdalmeida