将缓存添加到正在运行的Hazelcast节点

时间:2016-03-11 00:07:02

标签: java hazelcast

我正在尝试将地图添加到正在运行的hazelcast群集中,但在我重新启动整个群集(销毁已经存储在那里的任何数据)之前,它似乎无法正常工作。

我正在尝试向hazelcast配置添加新地图。 xml看起来像:

<map name="com.example.token">
    <map-store enabled="true">
        <class-name>com.example.TokenMapLoader</class-name>
    </map-store>
    <in-memory-format>BINARY</in-memory-format>
    <time-to-live-seconds>10800</time-to-live-seconds>
    <max-idle-seconds>0</max-idle-seconds>
    <eviction-policy>LRU</eviction-policy>
    <max-size policy="PER_NODE">125000</max-size>
    <eviction-percentage>25</eviction-percentage>
</map>

我希望能够通过更新每个节点的配置并重新启动它来进行滚动重启,让它重新加入现有的集群。当我尝试它时,地图为任何查找返回null,并且即使在所有节点都已更新之后,也永远不会调用MapLoader。我可能期望当一个实例没有正确的MapLoader时集群无法正常工作,但是在所有节点都有新的配置之后我假设地图将开始工作。

是否可以将地图添加到hazelcast群集而无需重启完整群集?

1 个答案:

答案 0 :(得分:0)

正如Jérémie所提到的,目前在Hazelcast数据结构中无法动态更改配置。但是,如果您使用JCache很好,则可以使用动态配置,这是JCache规范本身的一部分。

对于Hazelcast数据结构,我们在积压工作中有这个,但尚未实施。