You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:40:18