レイテンシが最も重要な高性能Java(J2SE)ミドルウェアアプリケーションがあります。レガシー・データベースに保持されているいくつかのスタンディング・データを使用します。レガシー・アプリケーションでは、時々、データが変更される可能性があります。レイテンシが必要なため、JPAをHibernateと、またEhcacheなどのキャッシュプロバイダを利用してキャッシュする予定です。JPAバックグラウンドキャッシュリフレッシュ
ただし、スタンディングデータが(従来のアプリによって)更新される場合は、できるだけ早くこれを通知する必要があります。私はキャッシュの有効期限を設定することを考えていましたが、データの次の要求がアプリケーションによって行われるまで、キャッシュはリフレッシュされません。その時点で、データベースの再読み込みのために遅延が発生します。
理想的には、古い値を返すためにキャッシュが必要であり、バックグラウンドでは、定期的にデータベースからの最新の値でキャッシュが更新/リフレッシュされます。
これはEhcacheで可能ですか?私はSelfPopulatingCacheとCacheLoaderを見てきましたが、これは私が多くの作業をしているようです(各エンティティのコードを書く必要があります)。また、誰にもCacheLoader実装の例がありますか?私は、クエリキャッシュ上の非同期リフレッシュオプションを期待していました。
ソリューションを提供できる他の技術はありますか?私たちはJPAプロバイダやキャッシュプロバイダに縛られていません。
Spring @Cacheableで解決策を提供できますか?私はspring ehcache cachableがself-populating-cache-scopeを言及しているのを見てきましたが、それがどういう意味なのかわかりません。
ありがとうございます。
レガシーアプリケーションで使用できる統合オプションは何ですか? – Santosh