l'impostazione per le mappe in Hazelcast proprietà programmatico?
-
22-09-2019 - |
Domanda
C'è un modo per impostare a livello di codice il "time to live" proprietà (o di fatto, qualsiasi proprietà) per una mappa distribuito in Hazelcast?
Voglio evitare di dover modificare la configurazione XML Hazelcast per questo.
Sto usando Hazelcast versione 1.7.1
Soluzione
È possibile impostare tutto a livello di codice in Hazelcast a cominciare 1.7.1 versione. È necessario creare un oggetto Config e passarlo.
Ecco come si fa in Hazelcast 1.7.1
Se si sta utilizzando metodi statici Hazelcast per ottenere carta, come Hazelcast.getMap ( "myMapName"), allora questo è il modo:
//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);
Ma se si sta creando istanze Hazelcast con Hazelcast.newHazelcastInstance quindi passare la configurazione a questo metodo. quindi ottenere mappa dall'istanza. In questo modo è possibile creare più istanze Hazelcast nella stessa JVM. Ecco il codice
HazelcastInstance h = Hazelcast.newHazelcastInstance(myConfig);
h.getMap("myMapName");
In Hazelcast versione più recente creazione dell'oggetto di configurazione è ancora più semplice:
Config config = new XmlConfigBuilder().build();
config.getMapConfig("myMapName").setTimeToLiveSeconds(10000);
A proposito Hazelcast 1.8.1 finale è in procinto di rilasciare. Vi suggerisco di passare a tale versione.
Saluti ...