2012-12-26 69 views
0

我在兩臺服務器上使用與兵馬俑的分佈式ehcache。在我的緩存管理器中,我有多個緩存。但是現在我有一個要求,即每當一個元素被添加到1臺服務器上的1個特定緩存中時,我想要得到關於放置在第二臺服務器上的通知。我嘗試使用CacheEventListener,但在本地工作。你能幫我弄清楚我能做什麼。我是否可以將複製機制與兵馬俑一起使用來解決此問題,例如通過使用1緩存上的複製,我將在其他服務器上以及所有其他緩存中使用兵馬俑的元素。請幫助它是非常緊急的。 在此先感謝我們可以一起使用ehcache複製和兵馬俑嗎?

回答

0

CacheEventListener CAN只能在本地工作,但您可以通過使用listenFor屬性將它配置爲通過Terracotta在羣集上工作。它可以採取以下值:

  • 所有 - 默認是提供所有本地和遠程事件
  • 地方 - 只提供原產於當前節點
  • 遠程事件 - 只提供源自其他節點的事件

檢查在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> 
+0

請問您能告訴我如何配置它在集羣上使用?就像我使用我自己的cacheEventListener一樣,它不會複製羣集中其他節點上的事件。 – user1147070

+0

你是如何配置CacheEventListener的?這樣的東西應該工作: ... Jaza

+0

有,我有相同的方式配置..但它是不在其他實例上覆制事件。 – user1147070