如何在3.9.3驱逐中测试hazelcast驱逐不起作用

时间:2018-08-05 09:36:48

标签: hazelcast hazelcast-imap

我正在使用hazelcast 3.9.3版本。 Hazelcast客户端和服务器作为具有单节点服务器和单节点客户端的springboot应用程序。

配置:

MapConfig h = new MapConfig();       
h.setEvictionPolicy(EvictionPolicy.LFU);
h.setTimeToLiveSeconds(Integer.parseInt("60"));
h.setMaxIdleSeconds(Integer.parseInt("60"));  
h.setMaxSizeConfig(new MaxSizeConfig(Integer.parseInt(9000), MaxSizeConfig.MaxSizePolicy.PER_NODE));
config.getMapConfigs().put("hsr",hsrMap);
  1. 根据文档,默认分区为271。每个分区可以容纳多少项目。
  2. 如何减少和测试271中的分区数。
  3. 如何通过以上示例检查缓存驱逐工作? Map拥有超过9000个条目的值,没有触发逐出。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

  1. 如果映射中的实例数为N,则每个分区的实例数为N / 271。

  2. 您可以将其作为java arg传入,也可以通过编程方式进行设置,如下所示:

    Config config = new Config();
    //是,这是虚拟机级别...
    config.setProperty(“ hazelcast.map.partition.count”,“ 271”);

  3. 根据名为“ hsr”的映射的配置,将timeToLiveSeconds设置为60,将maxIdleSeconds设置为60。驱逐将在每分钟开始,那些闲置超过60秒的实例将被驱逐。请记住,evictionPercentage的默认值为25,因此,每次执行驱逐操作时,只有约25%的节点计数将被驱逐,直到地图大小为0。