OffsetOutOfRangeException при чтении из журнала изменений магазина Kafka - PullRequest
0 голосов
/ 26 июня 2018

У меня есть приложение Kafka Streams, которое читает журнал изменений в магазине и иногда выдает эту ошибку:

org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions: {topic-partition=offset}
    at org.apache.kafka.clients.consumer.internals.Fetcher.parseCompletedFetch(Fetcher.java:928)
    at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:485)
    at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1185)
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1115)
    at org.apache.kafka.streams.processor.internals.StoreChangelogReader.restore(StoreChangelogReader.java:84)
    at org.apache.kafka.streams.processor.internals.TaskManager.updateNewAndRestoringTasks(TaskManager.java:319)
    at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:789)
    at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:750)
    at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:720)

Я думал, что потребитель по умолчанию должен был latest. Даже когда я попытался настроить свои свойства потока с помощью ConsumerConfig.AUTO_OFFSET_RESET_CONFIG на latest или earliest, я все еще вижу эту ошибку. Почему?

1 Ответ

0 голосов
/ 26 июня 2018

Настройка политики сброса потребителя возможна только для чтения из актуальных тем ввода.

Для тем журнала изменений (т. Е. Для случая восстановления) политика сброса всегда устанавливается на none внутри, потому что Kafka Streams должен обрабатывать этот случай вручную. Исключение перехватывается и регистрируется как сообщение уровня WARN. После этого Kafka Streams выполняет внутреннюю очистку и руководство #seekToBeginning(), чтобы возобновить процесс восстановления.

Нет причин беспокоиться об этом. Тем не менее, сообщение WARN регистрируется, чтобы сообщить вам о событии.

...