2 つのサーバーでテラコッタを使用して分散 ehcache を使用しています。私のキャッシュマネージャーには複数のキャッシュがあります。しかし、今では、要素が 1 つのサーバー上の 1 つの特定のキャッシュに追加されるたびに、2 番目のサーバーに配置されたという通知を受け取りたいという要件があります。CacheEventListener を使用してみましたが、ローカルで動作します。私に何ができるかを理解するのを手伝ってください。この問題を解決するために、レプリケーション メカニズムをテラコッタと一緒に使用できますか? 1 つのキャッシュでレプリケーションを使用すると、他のサーバーでその要素が取得され、他のすべてのキャッシュではテラコッタを使用できます。非常に緊急です助けてください。前もって感謝します
質問する
580 次
1 に答える
0
CacheEventListener はローカルでのみ機能しますが、listenFor プロパティを使用して、Terracotta 経由でもクラスター上で機能するように構成できます。次の値を取ることができます。
- all - デフォルトでは、すべてのローカル イベントとリモート イベントが配信されます。
- local - 現在のノードで発生したイベントのみを配信します
- remote - 他のノードで発生したイベントのみを配信します
http://ehcache.org/documentation/apis/cache-event-listenersのドキュメントを確認してください。
お役に立てれば!
更新: クラスター全体にイベントを分散させるには、別の CacheEventListener が必要であることが判明しました。構成は次のようになります。
<cache name="myCache"
...
<cacheEventListenerFactory class="net.sf.ehcache.event.TerracottaCacheEventReplicationFactory" properties="" listenFor="all"/>
<cacheEventListenerFactory class="foo.bar.MyListenerFactory" properties="" listenFor="all"/>
<terracotta/>
</cache>
于 2012-12-28T10:52:36.117 に答える