0

同じマシンで 2 つの Java アプリケーションを実行しています。リモート接続の要件があったため、http を介した jvm 間通信を実装しました。ある仮想マシンから別の仮想マシンに、約 10MByte の画像データを 1 秒間に 100 回渡しています。http では、書き込み機能に時間がかかりすぎたため、大幅な遅延が発生しました。速度が最も重要な基準であるため、要件として http をスキップできます。次に、ソケットを試しましたが、それでも遅すぎます。高速な jvm 間のメッセージングについて、RMI と Chronicle (openhft) について読みました。クロニクルは、メッセージの受け渡しにクロニクル キューを使用し、画像データの共有にクロニクル マップを使用できるので、興味深いと思います。

しかし、正直なところ、何が最善かを見積もることはできません。使用例は次のとおりです。 サーバーは画像を収集します。クライアントは、利用可能なイメージのリストを要求します。クライアントがメッセージを受け取るとすぐに、クライアントは 1 つの特定のイメージを要求します。サーバーには既にイメージがロードされており、イメージをクライアントに送信する必要があります。使用する戦略について何か提案はありますか? すべての画像をクライアントに送信することもできますが、これにより、サーバーが不要なデータ送信に多くの時間を費やすことになります。

ヒントをありがとう。

4

2 に答える 2

2

メモリマップされたバッファを介して、tmpfs/shmem ファイルシステム上のファイルに画像データを簡単に保持できます。次に、アクセスする必要があるファイル名を他のプロセスに通知するだけで済みます。たとえば、永続的な TCP 接続を介してです。

于 2015-09-11T14:30:29.760 に答える