Java JCS,仅使用内存缓存从死节点恢复

Java JCS,仅使用内存缓存从死节点恢复,java,caching,jcs,Java,Caching,Jcs,例如,我们有一个充当文件存储的服务器(jackrabbit后端)。该数据在启动时被推送到内存中的JCS缓存中。这一切似乎都很好 但是,我们的软件可以是多节点的,因此我们需要让JCS将数据复制到另一个节点。为了测试这一点,我使用了以下配置文件(每个节点的端口都翻转) 一开始,这似乎是可行的,如果我加载节点A的100个文件(并保持每10秒加载1个),它会被推送到节点B,并不断更新 但是,如果我向下拉节点B,然后重新启动节点B,它将拉入新创建的文件 我怎样才能让它在启动时进行一致性检查,这样当节点a重

例如,我们有一个充当文件存储的服务器(jackrabbit后端)。该数据在启动时被推送到内存中的JCS缓存中。这一切似乎都很好

但是,我们的软件可以是多节点的,因此我们需要让JCS将数据复制到另一个节点。为了测试这一点,我使用了以下配置文件(每个节点的端口都翻转)

一开始,这似乎是可行的,如果我加载节点A的100个文件(并保持每10秒加载1个),它会被推送到节点B,并不断更新

但是,如果我向下拉节点B,然后重新启动节点B,它将拉入新创建的文件

我怎样才能让它在启动时进行一致性检查,这样当节点a重新找到节点B(看起来是)时,它就可以重新同步并将其自身排序出来。。即再次将100+X推送到节点B

我只想使用内存缓存,因为磁盘缓存实际上是JackRabbit后端(我知道速度较慢,因此我们只需要内存缓存)

谢谢

# DEFAULT CACHE REGION

jcs.default=LTCP
jcs.default.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache

jcs.auxiliary.LTCP=org.apache.commons.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheFactory
jcs.auxiliary.LTCP.attributes=org.apache.commons.jcs.auxiliary.lateral.socket.tcp.TCPLateralCacheAttributes
jcs.auxiliary.LTCP.attributes.TcpServers=localhost:1987
jcs.auxiliary.LTCP.attributes.TcpListenerPort=1986
jcs.auxiliary.LTCP.attributes.AllowGet=true