我正在使用Hazelcast 3.7.4,并且有Lite和non-lite成员。

在我的精简版成员上,我将近缓存设置如下:

        NearCacheConfig nearCacheConfig = new NearCacheConfig(0, cacheSize, EvictionPolicy.LRU.name(), 0, true, InMemoryFormat.OBJECT);
        config.getMapConfig(mapName).setNearCacheConfig(nearCacheConfig);


我已经在lite成员上配置了条目侦听器,并且可以验证是否在更改时调用它。而且,新旧价值内容是正确的。

但是,当我尝试从地图中获取价值时,我仍在获取旧价值。

调试时,我尝试查看地图内容,可以看到新值,但是当我调用:map.get(key)时,将返回旧值。

最佳答案

这显然是一个错误,这是我从HZ团队得到的答案:


  感谢您报告此错误,确实这是3.7版本的错误。 3.8-EA没有这个问题。
  问题的根本原因是,如果在其他成员上也未配置近乎缓存,则不会将无效发送给精简成员。
  
  目前,作为一种解决方法,您可以在其他成员上启用近缓存。
  可能我们可以在下一个3.7补丁程序版本中解决此问题
  3.7.6。


作为一种解决方法,如建议的那样,我在其他成员上启用了近缓存(仅针对此地图),它解决了该问题。

https://github.com/hazelcast/hazelcast/issues/9723

07-28 13:12