異なる Java プロセスによって処理される複数の部分から情報の流れを再構築しようとしています。私はフローを生成していないことに注意してください。フローに関する情報を読んだだけです。
各フローの ID を使用して、INSERT ON DUPLICATE KEY UPDATE で MySQL (MyISAM/InnoDB テーブル) を使用してみました。また、すべての情報を保存し、最後にクエリを実行して完全な情報を取得しようとしました。これらのアプローチのどちらも、必要なパフォーマンスをもたらしませんでした。
複数の Java プロセス間で一連の共有オブジェクトを使用できるようにするソリューションを探しています。オブジェクトは、実行間で永続的であり、同時にルックアップ/更新が高速である必要があります (1 秒あたり 10 万回以上のルックアップ/更新)。
次のようないくつかの解決策を考えました。
- NoSQL: MongoDB、HBase など。
- EhCache、Memcached などのキャッシング ソリューション。
問題は、これらのソリューションの経験がないことです。では、次の条件に当てはまるものをお勧めします。
- 単一のシステムで非常に高速です。私が言及したアプリケーションのほとんどは分散システム用に構築されたものですが、ここではそうではありません。
- 習得/使用が簡単 (1 日でプロトタイプを作成できるようになりたい)
- 成熟した技術
- 商用でも自由に使えます
- できればオープンソース