Question

Est-il possible de définir par programme la propriété « temps de vivre » (ou en fait, toute propriété) pour une carte distribuée dans Hazelcast?

Je veux éviter d'avoir à modifier le code XML de configuration Hazelcast pour cela.

J'utilise la version 1.7.1 Hazelcast

Était-ce utile?

La solution

Vous pouvez définir tout ce programme dans Hazelcast commençant par la version 1.7.1. Vous devez créer un objet de configuration et de le transmettre.

Voici comment vous le faites dans Hazelcast 1.7.1

Si vous utilisez des méthodes statiques Hazelcast pour obtenir la carte, comme Hazelcast.getMap ( « myMapName »), alors ceci est la manière suivante:

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

Mais si vous créez des instances Hazelcast avec Hazelcast.newHazelcastInstance passe alors la config à cette méthode. puis obtenir la carte de l'instance. De cette façon, vous pouvez créer plusieurs instances de Hazelcast dans la même machine virtuelle Java. Voici le code

HazelcastInstance h = Hazelcast.newHazelcastInstance(myConfig);

h.getMap("myMapName");

Dans Hazelcast dernière version création de l'objet de configuration est encore plus simple:

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

Par ailleurs Hazelcast 1.8.1 finale est sur le point de libérer. Je vous suggère de passer à cette version.

Vive ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top