有一种方法以编程方式设置“生存时间”属性(或实际上,任何属性)用于Hazelcast分布式映射θ

我想避免不必改变Hazelcast配置XML此。

我使用Hazelcast版本1.7.1

有帮助吗?

解决方案

您可以通过编程方式在Hazelcast设置一切开始的1.7.1版本。 您需要创建一个配置对象,并将其传递。

下面是你如何在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最后即将释放。我建议你切换到该版本。

干杯...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top