Доступ к картам Hazelcast напрямую из Ionic

Я использую Vertx с Hazelcast и хотел бы использовать карты моего кластера непосредственно из приложения Ionic. Я знаю, как настроить мост между моим приложением и шиной событий, но это дает мне доступ только к шине событий. Я не нашел способа напрямую получить доступ к моему диспетчеру кластера, чтобы зарегистрировать слушателей на разных картах.

Кто-нибудь знает, как это сделать?

Благодарю вас!


person Pedro Pinto    schedule 12.03.2018    source источник


Ответы (1)


Нестандартного способа сделать это нет. Вам необходимо реализовать серверный компонент, который:

1/ регистрирует слушателя на карте Hazelcast

IMap<String, String> map = hz.getMap("somemap");
map.addEntryListener(new MyEntryListener(), true);

2/ перенаправляет уведомления карты на шину событий

@Override
public void entryAdded(EntryEvent<String, String> event) {
  // Transform the HZ event into something usable by the browser (eg JSON object)
  JsonObject json = eventToJson(event)
  vertx.eventBus().send("somemap-entry-added", json);
}
person tsegismont    schedule 13.03.2018
comment
Я понимаю, что это может быть единственным способом. Проблема в том, что в моем случае мне пришлось бы регистрировать потребителя на шине событий для каждого пользователя, вошедшего в приложение, чтобы отправить сообщение каждому из них по отдельности. В моей голове это не похоже на масштабируемое решение. Тем не менее, ваш пост отвечает на мой вопрос. - person Pedro Pinto; 13.03.2018
comment
Нет ничего плохого в регистрации потребителя для каждого пользователя. Если вы eventBus#publish вместо #send, они получат сообщения. - person tsegismont; 13.03.2018
comment
Да, я могу использовать publish, но это не то, что предполагается. Меня больше беспокоит количество активных подключений (потребителей), которые может обработать шина событий. Но я предполагаю, что это будет зависеть от размера моего кластера, я прав? - person Pedro Pinto; 13.03.2018
comment
Мост шины событий должен поддерживать большое количество одновременных подключений. Попробуйте и измерьте - person tsegismont; 14.03.2018
comment
Спасибо за помощь, @tsegismont :) - person Pedro Pinto; 14.03.2018