Kafka Consumer не использует с последнего зафиксированного смещения после перезапуска
У меня есть опрос потребителей из подписанной темы. Он потребляет каждое сообщение и выполняет некоторую обработку (в течение нескольких секунд), переходит к другой теме и фиксирует смещение.
Всего 5000 сообщений,
перед перезапуском - израсходовано 2900 сообщений и зафиксировано смещение
после перезапуска - начал потреблять со смещения 0.
Несмотря на то, что потребитель создан с той же группой потребителей, он начал обработку сообщений со смещения 0.
версия кафки (стримзи) > 2.0.0 кафка-питон == 2.0.1
1 ответ
Мы не знаем, сколько разделов у вас в теме, но когда потребители создаются в одной группе потребителей, они будут потреблять записи из разных разделов (у нас не может быть двух потребителей в группе потребителей, которые потребляют из одного раздела и Если вы добавите потребителя, координатор группы выполнит процесс перебалансировки, чтобы переназначить каждого потребителя определенному разделу).
Я думаю, что смещение 0 исходит из свойства
auto.offset.reset
который может быть:
latest
: Начать с последнего смещения в журналеearliest
: Начать с самой ранней записи.none
: Генерировать исключение при отсутствии данных смещения.
Но это свойство срабатывает только в том случае, если ваша группа потребителей не имеет допустимого смещения.
NB: записи в теме имеют срок хранения.
log.retention.ms
свойство, чтобы ваши последние сообщения могли быть удалены при обработке первых записей в журнале.
Вопросы: если вы хотите получать сообщения из одной темы, обрабатывать данные и записывать их в другую тему, почему вы не использовали Kafka Streaming?