Что такое offset в Kafka?
- Где Kafka хранит позицию потребителя?
Offset — порядковый номер записи в партиции. По нему потребитель знает, что уже прочитал: группа фиксирует offset в служебном топике __consumer_offsets.
- Монотонно растёт внутри партиции
- При перезапуске чтение продолжается с зафиксированного
- Можно перемотать назад и перечитать
А ещё Offset не глобальный — у каждой партиции свой
Подробно
Партиция — это упорядоченный журнал, в который записи только дописываются в конец, и каждая получает следующий номер. Offset уникален в пределах партиции, а не топика. Чтение не удаляет сообщение: потребитель просто сдвигает свою позицию, поэтому одни и те же данные могут независимо читать несколько групп, а при необходимости позицию можно отмотать назад и перечитать.
Что хотят услышать
- Что такое offset.
- Как используется для прогресса группы.
Частые ошибки
- Считать offset уникальным в пределах топика, а не партиции.
- Думать, что прочитанное сообщение удаляется.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Время жизни сообщения в топике в миллисекундах
- ✗Глобальный номер сообщения во всём топике, общий для всех партиций
- ✗Номер брокера, хранящего это сообщение
- ✓Номер записи в партиции
Что спросят дальше
- Что определяет срок хранения сообщений в топике?
- Зачем сообщению ключ?
Разбор темы
- Kafka: topic, partition, offset
Распределённый append-only лог, партиция как единица масштаба и упорядоченности, ключ и порядок, retention и log compaction, replay.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.