Hazelcast从3.x.x升级到5.x.x后EntryView字段返回-1求助
Hazelcast 5.x中EntryView统计字段返回-1的解决方法
问题原因
Hazelcast 5.x为优化性能,默认禁用了Map的统计数据收集功能,包括creationTime、hits、lastAccessedTime等字段的追踪。而3.x版本默认开启该功能,因此升级后这些字段返回-1。
代码修改方案
需要在服务器端的Map配置中显式开启统计收集,以下是修改后的完整代码:
package com.evolvedintelligence.engine.sigfirewall.preferences; import com.hazelcast.client.HazelcastClient; import com.hazelcast.client.config.ClientConfig; import com.hazelcast.config.Config; import com.hazelcast.config.InMemoryFormat; import com.hazelcast.config.MapConfig; import com.hazelcast.core.EntryView; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.map.IMap; import java.util.logging.Logger; public class myClass { private static final Logger LOGGER = Logger.getLogger(myClass.class.getName()); public static void main(String[] args) { // Start the Hazelcast Server Config configs = new Config(); // 为目标Map配置开启统计收集 MapConfig mapConfig = new MapConfig("mymap"); mapConfig.setStatisticsEnabled(true); mapConfig.setInMemoryFormat(InMemoryFormat.OBJECT); // 确保支持统计字段追踪 configs.addMapConfig(mapConfig); HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(configs); // Start the Hazelcast Client ClientConfig config = new ClientConfig(); config.getNetworkConfig().addAddress("127.0.0.1:5701"); // Connect to the Hazelcast server HazelcastInstance client = HazelcastClient.newHazelcastClient(config); IMap<String, String> map = client.getMap("mymap"); // 写入数据 map.put("key1", "value1"); // 获取EntryView EntryView<String, String> entryView = map.getEntryView("key1"); LOGGER.info("hits: "+ entryView.getHits()+" Key: " + entryView.getKey() + " Value: " + entryView.getValue() + " Creation Time: " + entryView.getCreationTime() + " Cost: " + entryView.getCost() + ", Version: " + entryView.getVersion()); } }
修改说明
- 开启统计收集:通过
mapConfig.setStatisticsEnabled(true)启用Map的统计数据追踪,这是解决问题的核心配置。 - 内存格式设置:显式设置
InMemoryFormat.OBJECT(默认值),避免使用NATIVE格式(该格式不支持部分统计字段的收集)。
修改后运行,creationTime会返回正确的时间戳,hits会根据访问次数返回对应数值,不再是-1。
内容的提问来源于stack exchange,提问作者Deepak_M
相关产品推荐
相关产品推荐

