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?

Другие вопросы по тегам