Hazelcast IMap 的 Hazelcast 3.4 'max-size' 属性无法正常工作

Hazelcast 3.4 'max-size' attribute of hazelcast IMap is not working correctly

我正在使用 hazelcast-spring-3.1.xsd。我的 hazelcast 地图配置如下。

<hz:map name="defaultMap"
                    backup-count="1"
                    max-size="5000"
                    max-size-policy = "PER_NODE"
                    eviction-percentage="50"
                    read-backup-data="true"    
                    eviction-policy="LRU"
                    merge-policy=
                        "com.hazelcast.map.merge.LatestUpdateMapMergePolicy"
                    time-to-live-seconds="0"
                >

我已经给了max-size = 5000。我有 12000 条记录 并且 defaultMap 正在加载 12000 条记录 如果我插入它。我在这里很困惑,它如何加载比实际大小更多的数据 5000。我插入12000条数据记录也没有异常。

还有一件事它的逐出配置也不起作用。如果缓存达到其最大大小限制,我想逐出 50%。

任何人都可以帮助我吗?它非常 urgent.What 我失踪了?

您有 max-size-policy = "PER_NODE" 设置,这意味着 每个 Hazelcast 实例 中映射条目的最大数量,而不是整个 Hazelcast 集群(或整个映射)。

在 Hazelcast 2.x 版本中,最大尺寸逐出策略的默认值为 cluster_wide_map_size。在 3.x 版本中,它被替换为 PER_NODE

还有其他设置。有关详细的地图驱逐设置和示例,您可以查看this

您可以使用此 属性 来解决您的问题:

eviction-policy="LFU"

LFU:最不常用 LRU:Least 最近使用过 NONE:None RANDOM:Randomly 我想你会用 LRU 而不是 LFU..