0

2 つのサーバーでテラコッタを使用して分散 ehcache を使用しています。私のキャッシュマネージャーには複数のキャッシュがあります。しかし、今では、要素が 1 つのサーバー上の 1 つの特定のキャッシュに追加されるたびに、2 番目のサーバーに配置されたという通知を受け取りたいという要件があります。CacheEventListener を使用してみましたが、ローカルで動作します。私に何ができるかを理解するのを手伝ってください。この問題を解決するために、レプリケーション メカニズムをテラコッタと一緒に使用できますか? 1 つのキャッシュでレプリケーションを使用すると、他のサーバーでその要素が取得され、他のすべてのキャッシュではテラコッタを使用できます。非常に緊急です助けてください。前もって感謝します

4

1 に答える 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 に答える