Вопрос с собеседования · Брокеры сообщений

Что такое offset в Kafka?

JuniorKafka: topic, partition, offsetKafka
Ещё спрашивают так:
  • Где Kafka хранит позицию потребителя?
Коротко

Offset — порядковый номер записи в партиции. По нему потребитель знает, что уже прочитал: группа фиксирует offset в служебном топике __consumer_offsets.

  • Монотонно растёт внутри партиции
  • При перезапуске чтение продолжается с зафиксированного
  • Можно перемотать назад и перечитать

А ещё Offset не глобальный — у каждой партиции свой

Подробно

Партиция — это упорядоченный журнал, в который записи только дописываются в конец, и каждая получает следующий номер. Offset уникален в пределах партиции, а не топика. Чтение не удаляет сообщение: потребитель просто сдвигает свою позицию, поэтому одни и те же данные могут независимо читать несколько групп, а при необходимости позицию можно отмотать назад и перечитать.

Что хотят услышать

  • Что такое offset.
  • Как используется для прогресса группы.

Частые ошибки

  • Считать offset уникальным в пределах топика, а не партиции.
  • Думать, что прочитанное сообщение удаляется.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Время жизни сообщения в топике в миллисекундах
  • ✗Глобальный номер сообщения во всём топике, общий для всех партиций
  • ✗Номер брокера, хранящего это сообщение
  • ✓Номер записи в партиции

Что спросят дальше

  • Что определяет срок хранения сообщений в топике?
  • Зачем сообщению ключ?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования