我们可以一起使用ehcache复制和兵马俑吗?

时间:2012-12-26 08:18:33

标签: ehcache terracotta

我在两台服务器上使用带有兵马俑的分布式ehcache。在我的缓存管理器中,我有多个缓存。但是现在我要求每当一个元素被添加到1个服务器上的1个特定缓存中时,我希望得到第二个服务器上放置的信息。我尝试使用CacheEventListener但在本地工作。你能帮忙搞清楚我能做些什么。我可以将复制机制与兵马俑一起使用来解决这个问题,因为通过在1个缓存上使用复制,我将在其他服务器上获取该元素,对于所有其他缓存,我可以使用兵马俑。请帮助它非常紧急。 提前谢谢

1 个答案:

答案 0 :(得分:0)

CacheEventListener CAN仅在本地工作,但您可以将其配置为通过Terracotta使用listenFor属性在集群上工作。它可以采用以下值:

  • 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>