Кафка очередь недоставленных писем, только для сообщений с тем же ключом - PullRequest
1 голос
/ 04 марта 2020

У меня есть kafka topi c HrEvents, который содержит много сообщений Hire, Fire, Quit, Promotion и Demotion. Каждое сообщение о событии HR имеет свойство employee_id (также ключ, используемый для разбиения) и свойство data, которое может содержать произвольные сведения о событии HR.

Проблема заключается в том, что различные data большие двоичные объекты то, что мое приложение должно быть в состоянии обработать, плохо документировано, и есть вероятность, что - в любой момент - может потребоваться событие HR, которое приложение не может обработать.
Важно, что - для каждого employee_id - приложение обрабатывает все кадровые события в порядке. Также важно, чтобы после такого сбоя обработки, затрагивающего один employee_id, все HR-события для всех других employee_id с могли продолжаться.

Сбой HR событие и все последующие HR-события для того же employee_id должны быть опубликованы в очереди недоставленных сообщений. После того, как приложение было исправлено - и добавлена ​​поддержка другой недокументированной формы блоба data - эти HR-события можно использовать из очереди недоставленных писем.

Я понимаю, что для этого также необходимо поддерживать некоторую форму ключевой черный список потребителя, внутри которого хранится employee_id s, для которого в очереди недоставленных сообщений хранится хотя бы одно неиспользованное сообщение о событии HR.

Существуют ли библиотеки решений / java, которые позволяют мне реализовать решение этой проблемы?


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

1 Ответ

1 голос
/ 05 марта 2020

Похоже, вы должны быть в состоянии использовать Kafka Streams для этого.

Ваша очередь недоставленных писем может создать таблицу KTable, которая образует тип черного списка. Когда новые события приходят в исходную топи c, вы выполняете поиск по KTable для существующих идентификаторов и добавляете входящие события в список значений событий, которые еще нужно обработать для этого идентификатора

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...