有没有办法以编程方式为Hazelcast中的分布式地图设置“生存时间”属性(或实际上是任何属性)?
我希望避免为此更改Hazelcast配置XML。
我正在使用Hazelcast版本1.7.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决赛即将发布。我建议你切换到那个版本。
干杯...