Hazelcast地图的程序化属性设置?

时间:2010-02-24 09:53:45

标签: java datagrid cluster-computing hazelcast

有没有办法以编程方式为Hazelcast中的分布式地图设置“生存时间”属性(或实际上是任何属性)?

我希望避免为此更改Hazelcast配置XML。

我正在使用Hazelcast版本1.7.1

1 个答案:

答案 0 :(得分:9)

您可以在1.7.1版本开始的Hazelcast中以编程方式设置所有内容。 您需要创建一个Config对象并传递它。

以下是如何在Hazelcast 1.7.1

中执行此操作

如果您使用Hazelcast静态方法来获取地图,例如Hazelcast.getMap(“myMapName”),那就是这样:

//You need to do this once on each JVM(Hazelcast node) at the begining  
Config myConfig = new Config();
Map<String, MapConfig> myHazelcastMapConfigs = myConfig.getMapMapConfigs();
MapConfig myMapConfig = new MapConfig();
myMapConfig.setName("myMapName");
myMapConfig.setTimeToLiveSeconds(1000);
myHazelcastMapConfigs.put("myMapName", myMapConfig);
Hazelcast.init(myConfig);

但是如果您使用Hazelcast.newHazelcastInstance创建Hazelcast实例,则将配置传递给此方法。然后从实例获取地图。这样,您可以在同一JVM中创建多个hazelcast实例。这是代码

HazelcastInstance h = Hazelcast.newHazelcastInstance(myConfig);

h.getMap("myMapName");

在hazelcast最新版本中,创建配置对象更简单:

Config config = new XmlConfigBuilder().build();
config.getMapConfig("myMapName").setTimeToLiveSeconds(10000);

顺便说一下,Hazelcast 1.8.1决赛即将发布。我建议你切换到那个版本。

干杯...