Запрет Hazelcast для регистрации EvictionListener на каждом узле - PullRequest
0 голосов
/ 26 сентября 2019

В настоящее время у нас возникла проблема, состоящая в том, что мы настраиваем прослушиватель записи карты для конкретной карты в компоненте Hazelcast Config.Проблема, с которой мы сталкиваемся, заключается в том, что слушатель создается на каждом узле, что имеет смысл и правильно с нашей реализацией, но на самом деле это не то, чего мы пытаемся достичь.Есть ли способ просто добавить прослушиватель на карту только для одного узла кластера или самого кластера, чтобы при удалении записи на карту был зарегистрирован только один прослушиватель?

Для ясности: на нашем приложении с весенней загрузкой работают 12 серверов, которые все зарегистрированы как узлы в кластере hazelcast.Таким образом, если запись выселена, то 12 слушателей реагируют на выселение.Мы просто хотим зарегистрировать один прослушиватель для этого случая.

Это код из bean-компонента Config, который запускается в каждом приложении в нашем кластере серверов, который является всеми узлами:

@Bean
Config hazelcastConfig(AppConfigurationProperties properties, 
HazelcastEvictionListener hazelcastEvictionListener) {

HazelcastProperties hazelcastProperties = properties.getHazelcast();
    Config config = new Config();

    MapConfig activationMapConfig = new MapConfig();
    activationMapConfig.setName(HazelcastMaps.ACTIVATION_INFORMATION);
    activationMapConfig.addEntryListenerConfig(new 
EntryListenerConfig(hazelcastEvictionListener, false, true));
...}

IsЕсть ли способ настроить Hazelcast, чтобы этот EntryListener регистрировался только один раз на всех узлах?

У меня нет ни малейшего понятия, есть ли смысл использовать Hazelcast таким образом, но я новичок в теме Hazelcast и надеюсь напомощь или идеи.

...