编程语言
首页 > 编程语言> > java-Hazelcast地图统计

java-Hazelcast地图统计

作者:互联网

我正在尝试显示地图的统计信息.它始终将命中数显示为0.我正在使用以下代码.

IMap<String, byte[]> map = Hazelcast.getMap("SOMEMAP");
LocalMapStatsImpl local = (LocalMapStatsImpl) map.getLocalMapStats();
System.out.println(map.getLocalMapStats());

输出是

LocalMapStatsImpl{ownedEntryCount=0, backupEntryCount=1, markedAsRemovedEntryCount=0, ownedEntryMemoryCost=0, backupEntryMemoryCost=13841, markedAsRemovedMemoryCost=0, creationTime=1323806943770, lastAccessTime=0, lastUpdateTime=0, lastEvictionTime=0, hits=0, lockedEntryCount=0, lockWaitCount=0, dirtyEntryCount=0, LocalMapOperationStats{total= 0, puts:OperationStat{count=0, averageLatency=0}, gets:OperationStat{count=0, verageLatency=0}, emoves:OperationStat{count=0, averageLatency=0}, others: 0, received events: 0}}

任何帮助表示赞赏.我想知道点击数,地图大小和条目数.

解决方法:

确保您在地图中输入了一些条目.从统计信息中可以看到,映射中只有一个条目,而该条目归另一个节点所有,当前节点具有该条目的备份(ownEntryCount = 0,backupEntryCount = 1).

请注意,此统计信息仅适用于当前节点本地地图.如果您有多个节点,并且当前节点在获得统计信息时不拥有任何数据,那么您将没有命中或拥有的条目计数而得到0.

使用Hazelcast 1.9.4.4(截止到目前)和单节点,我可以通过以下方式获得统计信息:

IMap map = Hazelcast.getMap("test");
for (int i = 0; i < 100; i++) {
    map.put(i, i);
    map.get(i);
}
LocalMapStats stats = map.getLocalMapStats();
System.err.println(stats.getHits());
System.err.println(stats.getOwnedEntryCount());

匹配数和ownEntryCount均显示100.

LocalMapStatsImpl{ownedEntryCount=100, backupEntryCount=0, markedAsRemovedEntryCount=0, ownedEntryMemoryCost=42100, backupEntryMemoryCost=0, markedAsRemovedMemoryCost=0, creationTime=1323844949878, lastAccessTime=1323844949908, lastUpdateTime=0, lastEvictionTime=0, hits=100, lockedEntryCount=0, lockWaitCount=0, dirtyEntryCount=0, LocalMapOperationStats{total= 200, puts:OperationStat{count=100, averageLatency=0}, gets:OperationStat{count=100, averageLatency=0}, removes:OperationStat{count=0, averageLatency=0}, others: 0, received events: 0}}

试试看,看看是否会得到相同的结果.否则,您的地图为空或者您使用的版本存在错误.

标签:hazelcast,java
来源: https://codeday.me/bug/20191202/2084902.html