0

複数のスレッドからリアルタイムのプロファイリング データを受け取り、障害のある可能性のあるトランスポートを介してそのデータをアップロードできるディスク バックアップ キューを実装する必要があります。当初は Java を対象としていましたが、長期的には Objective-C、Flash、JavaScript で同じメカニズムを使用する必要があります。Android Java とデスクトップを対象としています。

これは単一のプロセス内に含まれるため、MQ ソリューションはおそらくアウトです。パフォーマンスは重要な考慮事項です。つまり、信頼性をパフォーマンスと引き換えにすることを意味します。

アーキテクチャ図

私は2つのことに興味があります:

  1. 上記のアーキテクチャを考えると、この問題を完全または部分的に解決する利用可能なテクノロジはありますか?
  2. このメカニズムをさまざまなプラットフォームで最終的に再実装するか、理想的には再利用するという目標を考えると、Objective-C と Android Java の両方で簡単に使用できる方法でこれを構築する方法はありますか?
  3. このアーキテクチャはどのように見えますか?
4

1 に答える 1

0

限られた量のデータ(循環ログ)を保持し、そのために一定量の永続メモリを予約できるようにする場合、最も効果的な解決策はメモリマップトバッファです。パーシスターは単にいくつかのバッファーのキャッシュであり、プロファイリングキューとアップローダーの両方にサービスを提供します。

他のプラットフォームで再実装する場合、プラットフォームにマッピング機能がない可能性があります。この場合、バッファは直接読み書きできます。これは、メモリへのマッピングよりも効率が悪い可能性がありますが、それでも他のソリューション(組み込みデータベースなど)よりも効率が悪くなることはありません。

アーキテクチャに関しては、データが永続から読み取られるときの状況を反映していません(または、永続が必要なのは何ですか?)。次に、プロファイリングキューは実際にはデータ全体(永続的なものを含む)を包含し、プロファイリングキューと呼ばれるのはメインメモリ内のバッファーであり、連続することはできないため、キューよりもバッファーキャッシュの方が適切です。

于 2012-06-04T17:41:03.860 に答える