infinispan群集节点的过期结果与官方文档描述不一致

时间:2019-04-22 09:25:43

标签: infinispan

当我测试infinispan群集节点缓存的到期方法时,我发现当节点达到最大空闲时间时,它不会从群集中的其他节点获得“最后一次访问条目”的信息,而是直接使该无效节点的缓存条目。例如:我启动了两个节点A和B,并将缓存的最大空闲时间设置为10s。在测试开始时,我向节点A发送了一个请求,以访问数据库记录并将数据库记录写入高速缓存。这时,节点A将数据缓存同步到节点B。然后在5s,我访问了节点A的缓存条目,然后在10s之后访问了节点B。我发现节点B的缓存条目无效,节点B从数据库中检索了数据库记录,然后写入缓存并同步到其他节点,而不是将缓存视为有效。

为什么与文档中的描述不同? http://infinispan.org/docs/stable/user_guide/user_guide.html#expiration_details

对于群集节点缓存过期失效的配置,我将其配置如下:

Configuration C = new ConfigurationBuilder()
    .expiration().enableReaper(). wakeUpInterval(50000L).maxIdle(10000l).build();

1 个答案:

答案 0 :(得分:2)

听起来您正在使用Infinispan的旧版本。直到https://issues.jboss.org/browse/ISPN-9003中的9.3才引入集群范围的最大空闲空闲时间。如果此问题在9.3或更高版本上仍然存在,则可以在https://issues.jboss.org/projects/ISPN上记录一个错误。