Pregunta

¿Hay una manera de establecer mediante programación el "tiempo de vida" propiedad (o de hecho, cualquier propiedad) para un mapa distribuido en Hazelcast?

Quiero evitar tener que cambiar la configuración XML Hazelcast para esto.

Estoy utilizando la versión 1.7.1 Hazelcast

¿Fue útil?

Solución

Se puede configurar mediante programación en todo Hazelcast partir de la versión 1.7.1. Es necesario crear un objeto de configuración y pasarlo.

Aquí es cómo lo hace en Hazelcast 1.7.1

Si está utilizando métodos estáticos Hazelcast para obtener un mapa, como Hazelcast.getMap ( "myMapName"), entonces esta es la forma:

//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);

Sin embargo, si va a crear instancias Hazelcast con Hazelcast.newHazelcastInstance luego pasar el config para este método. a continuación, obtener un mapa de la instancia. De esta manera se pueden crear varias instancias en Hazelcast misma JVM. Aquí está el código

HazelcastInstance h = Hazelcast.newHazelcastInstance(myConfig);

h.getMap("myMapName");

En Hazelcast última versión de crear el objeto de configuración es aún más simple:

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

Por cierto Hazelcast 1.8.1 final está a punto de liberación. Sugiero que le permite cambiar a esa versión.

Saludos ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top