Hazelcast IMap не распространяется
Я использую Hazelcast IMap для кэширования данных (ключ, UUID).
В классе App
static HazelcastInstance hzInstance;
@Autowired
private static Config config;
public static HazelcastInstance hazelcastInstanceM {
if (sharedInstance == null)
sharedInstance = Hazelcast.newHazelcastInstance(config);
return sharedInstance;
}
В другом классе B I получить Hazelcastinstance, чтобы получить карту CD
static {
hazelcastInstance = App.hazelcastInstanceM();
map= hazelcastInstance.getMap("CD");
}
У меня есть два члена в кластере. При первом обращении к службе, скажем, члену 1, ключ key1,uuid1get, сохраняется на карте. Во втором запросе к службе говорят участнику 2, что он должен добавить ключ 1, если он не представлен на карте.
kmap.putIfAbsent(key1, uuid1, 4, TimeUnit.MINUTES);
Теперь замечено, что когда второй раз запрос выполняется через элемент 2 key1,uuid2 снова добавляется в карту. В идеале, как и ожидалось, его не следует добавлять, и, следовательно, карта не отображает распределенное поведение среди членов кластера.
Что может быть причиной того, что карта не ведет себя распределенным образом
1 ответ
Вы уверены, что ваши экземпляры Hazelcast обнаруживают друг друга и образуют кластер? Возможно, оба работают самостоятельно. Если возможно, приложите к этому вопросу логи Hazelcast обоих экземпляров.