私はいくつかのソースからのライブデータを消費し、定期的にレポートを作成するアプリケーションを設計しています。消費されたデータはEhcacheキャッシュに追加され、レポートはそれを照会します。ライブデータが消費されたら、復旧目的でのみ保持する必要があります。アプリケーションが再起動すると、ライブデータソース(新しいデータをキューに入れる)に接続する前に、DBからの履歴データでキャッシュをプライミングします。DBパーシスタンスデザインのEhcache
私はJDBCのキャッシングとキャッシュとして-SORとしてそれを実装するに傾いています:
1.ソース
2からのデータを受信は
4.確認の領収書をキャッシュするために
3. [追加]をDBへの永続しますソースを使用して
2-4をJTAトランザクションでラップします。
Ehcacheを2次キャッシュとしてHibernateを調べましたが、それは適切ではないようです。
私はEhcacheには比較的新しいので、正しいデザインに関するアドバイスをしたいと思います。
Cache-asideは考慮に値しませんでしたが、write-behindを使用してキャッシュとしてキャッシュするのは良い考えです。私はwrite-behind能力を完全に忘れてしまった!要素が保持されているときにコールバックがあるので、発行者に領収書を送付することができますか? TerracottaとNoSQLのソリューションは、このプロジェクトにとって過度のものです。 –
あなたはCacheWriter.write(All)メソッドで本を保持できるはずです。 putが発生したときにキーが「保留中」であることを確認し、ライターが正常に書き込まれたときにクリアするようにしたデコレーションされたキャッシュを持つと、私は推測します。 –