Hazelcast: Как гарантировать, что EventListener никогда не пропускает события? - PullRequest
2 голосов
/ 22 января 2020

Через клиент Java Hazelcast я могу успешно добавить EntryListener, и слушатель вызывается, как и ожидалось, когда записи добавляются или обновляются. Пока все хорошо.

Но иногда клиентское приложение отключается от кластера. Когда это происходит, клиент часто переподключается автоматически, и клиент должен снова добавить прослушиватель. Но в течение этого короткого периода (между отключением и повторным добавлением прослушивателя) существует вероятность пропуска событий.

Другой случай, когда события могут быть пропущены, - это необходимость перезапуска клиента.

Есть ли способ гарантировать, что EntryListener получит все события?

1 Ответ

1 голос
/ 22 января 2020

Слушатели событий работают в режиме огня и забывают, поэтому нет возможности получать прошлые события.

Однако; есть ReliableTopi c, в котором хранятся последние N событий в кольцевом буфере. И если вы прослушиваете его с помощью ReliableMessageListener , он может сохранять идентификаторы событий локально и возобновлять с последнего полученного события в случае отключения et c. Пожалуйста, проверьте интерфейсы этих двух.

...