В теме Kafka нет дублирования сообщений

Как добиться такого результата с сообщениями в темах кафки?

То есть функциональность, подобная журналу изменений - в тему приходит несколько сообщений, но меня волнует только последнее пришедшее.

И что происходит в случае, если тема разделена?

Возможно ли это в Кафке?


person DmitrySemenov    schedule 24.01.2018    source источник


Ответы (1)


Для этого вы должны установить cleanup.policy для этой темы на compact, как показано ниже:

СОЗДАТЬ ТЕМУ:

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1 --replication-factor 1 --config cleanup.policy=compact

ОБНОВИТЬ ТЕМУ:

bin/kafka-configs.sh --zookeeper localhost:2181 --темы типа объекта --имя объекта моя тема --alter --add-config cleanup.policy=compact

С установленной политикой compact вы должны назначить ключ для каждого сообщения, и производитель Kafka будет разделять сообщения на основе этого ключа.

person amethystic    schedule 25.01.2018
comment
Что произойдет, если у меня несколько разделов темы? Сообщение с одним и тем же ключом будет все время направляться в один и тот же раздел? - person DmitrySemenov; 25.01.2018
comment
также уплотнение происходит сразу или партиями в течение определенного периода времени? Например, я отправил сообщение с ключом = A в тему, оно уникально. Через 2 секунды пришло то же сообщение с ключом = A в той же теме. Если я запрошу кафку сразу после этого - я увижу 2 записи или 1 запись? - person DmitrySemenov; 25.01.2018