Как сделать неумышленную и дедуплицированную версию темы кафки - PullRequest
0 голосов
/ 13 марта 2019

Если у меня есть тема в Кафке, в которой есть сообщения, использующие целое число в качестве ключей. Как создать тему, основанную на этой теме, но не имеющую дублирования, а сообщения упорядочены по ее ключу?

Например, допустим, название темы - "my_topic", и в этой теме 5 сообщений:

key: "10", value: "{ value: 15 }"
key: "13", value: "{ value: 40 }"
key: "11", value: "{ value: 30 }"
key: "10", value: "{ value: 15 }"
key: "12", value: "{ value: 20 }"

Затем, как создать «order_deduplicated_my_topic» так, чтобы в нем было только 4 сообщения (поскольку сообщения упорядочены по ключу asc, а дублированная «10» была удалена):

key: "10", value: "{ value: 15 }"
key: "11", value: "{ value: 30 }"
key: "12", value: "{ value: 20 }"
key: "13", value: "{ value: 40 }"

1 Ответ

0 голосов
/ 13 марта 2019

Последняя версия Kafka поставляется с семантикой «точно один раз», целью которой является запись в Kafka точно один раз.Если ваше решение на основе kafka находится в бета-фазе, то я бы порекомендовал вам обновить производителей и потребителей, чтобы они использовали семантика "ровно один раз" .Если вы придерживаетесь семантики, то вам не нужно об этом беспокоиться.

Если у вас нет возможности использовать семантику "точно один раз", Эффективная стратегия предотвращения дублирования сообщений в apache kafka consumer может немного помочь.

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