我目前有一个分布式缓存使用EHCache通过RMI工作得很好。我想知道你是否可以在缓存中包含持久性以创建分布式持久缓存。
除此之外,如果缓存是持久的,它是从文件存储加载,还是从缓存集群引导?基本上,我想要的是:
这背后的用例是在独立的机器上运行2个相同的组件,分配缓存以避免在其中一个组件发生故障时丢失数据。持久性将防止在两个组件都失败的罕见情况下丢失所有数据。
转向另一种分配方法(如Terracotta)会支持这个吗?
答案 0 :(得分:3)
我会看看EHCache中的write-through caching options。如链接中所述,组合read-through和write-behind高速缓存将为用户定义的数据存储提供持久性。
Terracotta为您提供的是一致性(因此您不必担心解决集群成员之间的冲突)。您可以选择定义自己商店的接口(通过CacheLoader
和CacheWriter
,或者让Terracotta保留您的数据,但我收到了来自Terracotta的混合信号以及有关TC是否适合于记录系统。如果您的数据是短暂的并且可以随时被吹走(例如网络会话),那么它可能没问题。
答案 1 :(得分:1)
将bootstrapCacheLoaderFactory元素与cacheEventListenerFactory一起添加到Cache(当它关闭时需要从其他节点引导,并且如果该节点有任何更新,则与其他节点一起复制)
memoryStoreEvictionPolicy = “LFU”
diskPersistent = “真”
timeToLiveSeconds = “86400”
maxElementsOnDisk = “1000” >