Я написал фреймворк карусели для просмотра кеширования и выделенный один сервер для лесного камня для кэширования через инъекцию конструктора. Просто хотите знать, где хранится объект IMAP? Является ли он на моем сервере hazelcast или в моем приложении, где работает этот класс?Данные, хранящиеся в IMap в каре, для кеширования хранятся в сервере hazelcast или где выполняется экземпляр карусели?
public String hazelClientServer;
public static HazelcastInstance hazelcastInstance;
// setting through constructor injection
public HazelCastCache(String hazelClientServer) {
this.hazelClientServer = hazelClientServer;
}
private IMap<Object, Object> getMap(String mapName,String configName){
Config conf = new Config(configName);
MapConfig mapConfig = new MapConfig(mapName);
mapConfig.setEvictionPolicy(EvictionPolicy.LRU);
mapConfig.setEvictionPercentage(10);
conf.addMapConfig(mapConfig);
conf.getNetworkConfig().setPublicAddress(hazelClientServer);
hazelcastInstance = Hazelcast.getOrCreateHazelcastInstance(conf);
IMap<Object, Object> hazelMap=hazelcastInstance.getMap(mapName);
return hazelMap;
}
public Object getDataFromCache(String mapName,String configName,Object key){
IMap<Object, Object> dataMap = getMap(mapName,configName);
Object data = dataMap.get(key);
return data;
}
public void addDataToCache(String mapName,String configName,Object key,Object value){
IMap<Object, Object> dataMap = getMap(mapName,configName);
dataMap.put(key, value);
}
Спасибо! Ваше предложение несколько полезно для меня. Мое мнение состояло в том, что данные хранятся на сервере hazelcast, и оттуда мое приложение реплицирует его локально. Но когда я перезапущу свое приложение. сервер, кеш-карта пуста, несколько поднимает вопрос о том, как данные не сохраняются, поскольку я не перезапускал сервер hazelcast. Может быть, когда сервер приложений перезагружен, карта в кеш-сервере также сбрасывается, что может быть одним возможным сценарием, а второе может быть вашим. –
Ваше понимание неверно при сбросе кеша. В любом случае данные хранятся только в контейнере Hazelcast. Но поскольку вы начали работать в режиме Embedded, если вы остановите свой сервер приложений, он также выключит кластер Hazelcast, что приведет к потере всех данных. Я бы предпочел, чтобы вы начали кластер Hazelcast как автономный, а затем использовали HazelcastClient для доступа к данным с этого сервера HZ. –
Хорошо. В этом случае мои данные всегда будут присутствовать в кластере ящериц, даже если я перезапущу свой сервер приложений, если только я не очищу кластер? –