Этот вопрос проверяет понимание механизма позиционирования сообщений при чтении из Kafka.
Offset — это порядковый номер сообщения внутри partition’а. Он однозначно идентифицирует позицию сообщения. Consumer использует offset, чтобы понимать, какие сообщения уже прочитаны. Offset увеличивается последовательно. Управление offset’ами позволяет возобновлять чтение после сбоев.
Offset — это уникальный порядковый номер сообщения внутри конкретного partition’а.
Offset имеет несколько важных характеристик:
Уникален в рамках одного partition’а
Возрастает последовательно
Не гарантирует непрерывность (могут быть пропуски)
Consumer:
читает сообщения, начиная с определенного offset
после обработки фиксирует offset
при перезапуске продолжает чтение с сохраненного значения
В современных версиях Kafka offset’ы:
хранятся в специальном internal topic
привязаны к consumer group
обновляются автоматически или вручную
Правильная работа с offset’ами позволяет:
избегать потери сообщений
управлять повторной обработкой
восстанавливаться после сбоев
Offset — это основа механизма чтения Kafka, позволяющая consumer’ам точно контролировать позицию обработки сообщений.