2012-12-26 73 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