infinispan - infinispan集群节点过期结果与官方文档描述不一致
问题描述
在测试infinispan集群节点缓存的过期方式时,发现当节点达到最大空闲时间时,不会从集群中的其他节点获取“最后一次访问该条目的时间”,而是直接使缓存条目失效的节点。例如:我启动了两个节点A和B,设置缓存的最大空闲时间为10s。在测试开始时,我向节点 A 发送了一个请求以访问数据库记录并将数据库记录写入缓存。这时节点A将数据缓存同步到节点B。然后在5s时,我访问了节点A的缓存条目,10s后又访问了节点B。发现Node B的缓存入口无效,Node B从数据库中取出数据库记录,写入缓存并同步到其他节点,而不是把缓存当作有效。
为什么与文档中的描述不同?http://infinispan.org/docs/stable/user_guide/user_guide.html#expiration_details
对于集群节点缓存过期失效的配置,我配置如下:
Configuration C = new ConfigurationBuilder()
.expiration().enableReaper(). wakeUpInterval(50000L).maxIdle(10000l).build();
解决方案
听起来您使用的是旧版本的 Infinispan。集群范围的最大空闲到期直到 9.3 在https://issues.jboss.org/browse/ISPN-9003中才引入。如果此问题在 9.3 或更高版本中仍然存在,您可以在https://issues.jboss.org/projects/ISPN记录错误。
推荐阅读
- python - DICE 损失太低,但预测和标签之间没有重叠
- java - Primefaces 动态折线图
- python - Tkinter Text-Widget ,滚动到特定行以使其成为第一个可见行
- angular - Angular 8 从 GET API 调用中打印出 JSON 元素
- html - 为什么评论在 HTML 中的标签内不起作用
- python - spark sql中需要一次传递多个sql查询
- perl - 使用 Net::OpenSSH 将文件从远程机器传输到本地机器
- php - 多次调用该文件时延长php中的超时时间
- sql - 用于从表中获取先前和新列详细信息的 SQL 查询
- python - 如何递归总结python中嵌套树字典的叶子节点?