我正在使用Hazelcast 3.7.4,我有精简和非精简成员。
在我的精简版成员中,我设置了近缓存,如下所示:
NearCacheConfig nearCacheConfig = new NearCacheConfig(0, cacheSize, EvictionPolicy.LRU.name(), 0, true, InMemoryFormat.OBJECT);
config.getMapConfig(mapName).setNearCacheConfig(nearCacheConfig);
我已经在我的lite成员上配置了条目监听器,并且可以验证它是否在更改时被调用。而且,新旧价值内容是正确的。
但是当我试图从地图中获取值时,我仍然得到旧值。
在调试时,我试图查看地图内容,我可以看到新值,但是当我调用时:map.get(key)
会返回旧值。
答案 0 :(得分:0)
这显然是一个错误,我从HZ团队得到的答案:
感谢您报告此事,确实这是3.7版本的错误。 3.8-EA没有这个问题。 问题的根本原因是,如果未在其他成员上配置近缓存,则不会向lite-members发送无效。
目前,作为一种解决方法,您可以在其他成员上启用近缓存。 可能我们可以在下一个3.7补丁版本中解决这个问题 3.7.6。
作为一种解决方法,正如建议的那样,我已经在其他成员上启用了近缓存(仅适用于此地图)并且它解决了问题。