Мне нужно, чтобы потребитель Kafka зафиксировал конкретное сообщение - PullRequest
0 голосов
/ 28 августа 2018

Представим себе поток сообщений в разделе кафки.

1, 2, 3, 4, 5

Есть ли способ для потребителя зафиксировать одно сообщение (скажем, 2), чтобы, если этот конкретный потребитель начал читать сообщения с самого начала снова, он потреблял только незафиксированные сообщения?

1, 3, 4, 5

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Я не уверен, что понимаю вариант использования, но вы можете использовать сжатую тему

скажем, вы отправляете эти сообщения

(1, 1)
(2, 2)
(3, 3) 
(4, 4)
(5, 5)

И вы больше не хотите видеть значение 2, тогда вы отправляете еще одну запись

(2, null)

После сжатия все ключи с 2 удаляются

0 голосов
/ 28 августа 2018

Нет. Apache Kafka не поддерживает подтверждение одной записи AFAIK. Таким образом, когда сообщение подтверждается (скажем, 3), все предварительно просмотренные сообщения считаются прочитанными .

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

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