7

マルチスレッドクライアントが毎秒数千回のサーバー呼び出しを実行するクライアントとサーバーのペアで作業しており、最優先事項は最小限の待ち時間を達成することです。スループットも高くなければなりません。クライアントとサーバーはどちらも Java で記述されており、通信のセマンティクスは非常に単純です (put/get 操作)。

これらの要件に最適な Java ネットワーク ライブラリ/フレームワークはどれですか? Tomacat/Jetty のようなサーバーは重量級のようです。MINA または Netty について考えていますが、これらの非同期ライブラリが重いワークロードの下で安定した低レイテンシを提供するかどうかはわかりません。

4

4 に答える 4

2

kryonetフレームワークを試すことをお勧めします。

于 2012-06-22T14:53:17.713 に答える
2

同じマシンで通信したい場合は、Java Chronicleのようなものを試すことができます。Java Chronicle は、1 マイクロ秒未満の往復時間で 1 秒あたり 100 万を超える持続メッセージをサポートできます。

マシン間の待ち時間を短くしたい場合は、ハードウェアを注意深く調べる必要があります。コモディティ ハードウェアの場合、ラウンド トリップ レイテンシは 100 マイクロ秒以上になります。特殊なハードウェアを使用すると、20 マイクロ秒に近づきます。

または、同じボックスで通信して、待ち時間を大幅に短縮することもできます。;)

于 2012-06-22T15:04:27.050 に答える
1

超高パフォーマンスとスループットが必要な場合は、raw ソケットを使用することをお勧めします (Socket と ServerSocket を確認してください - nio バージョンもあるかもしれません)。これにより、HTTP やその他のプロトコルに含まれるオーバーヘッドから解放されます。

于 2012-06-22T14:53:02.043 に答える