Получить доступ

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

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

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

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

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

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

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

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

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

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

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

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

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

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

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

Разбор темы

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

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем