使用EHCache的分布式持久缓存

时间:2010-04-28 16:37:01

标签: ehcache terracotta distributed-caching

我目前有一个分布式缓存使用EHCache通过RMI工作得很好。我想知道你是否可以在缓存中包含持久性以创建分布式持久缓存。

除此之外,如果缓存是持久的,它是从文件存储加载,还是从缓存集群引导?基本上,我想要的是:

  • 缓存启动
  • 缓存从文件存储中加载持久对象
  • Cache正常加入被破坏的集群和bootstraps

这背后的用例是在独立的机器上运行2个相同的组件,分配缓存以避免在其中一个组件发生故障时丢失数据。持久性将防止在两个组件都失败的罕见情况下丢失所有数据。

转向另一种分配方法(如Terracotta)会支持这个吗?

2 个答案:

答案 0 :(得分:3)

我会看看EHCache中的write-through caching options。如链接中所述,组合read-through和write-behind高速缓存将为用户定义的数据存储提供持久性。

Terracotta为您提供的是一致性(因此您不必担心解决集群成员之间的冲突)。您可以选择定义自己商店的接口(通过CacheLoaderCacheWriter,或者让Terracotta保留您的数据,但我收到了来自Terracotta的混合信号以及有关TC是否适合于记录系统。如果您的数据是短暂的并且可以随时被吹走(例如网络会话),那么它可能没问题。

答案 1 :(得分:1)

将bootstrapCacheLoaderFactory元素与cacheEventListenerFactory一起添加到Cache(当它关闭时需要从其他节点引导,并且如果该节点有任何更新,则与其他节点一起复制)

      memoryStoreEvictionPolicy = “LFU”       diskPersistent = “真”
      timeToLiveSeconds = “86400”       maxElementsOnDisk = “1000” >