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

Что такое high watermark в Kafka и как он связан с видимостью сообщений для consumer-а?

MiddleРепликация KafkaKafka
Ещё спрашивают так:
  • Почему потребитель не видит только что записанное сообщение?
Коротко

High watermark — offset, до которого запись реплицирована на все реплики ISR. Потребители видят сообщения только до него: иначе прочитали бы данные, которые могут исчезнуть при смене лидера.

  • Log end offset лидера может быть больше HW — хвост ещё не реплицирован
  • Новый лидер обрезает журнал до HW
  • read_committed дополнительно скрывает незавершённые транзакции (LSO)

А ещё Поэтому задержка видимости зависит от репликации

Подробно

Лидер принимает записи и продвигает свой log end offset, но consumer-ам отдаёт только сообщения до high watermark — границы, до которой данные подтверждены всеми репликами ISR. Это не даёт прочитать сообщение, которое может пропасть, если лидер упадёт до его репликации. Поэтому реплицированность напрямую влияет на задержку видимости: пока фолловеры не догнали, новое сообщение consumer не увидит.

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

  • Определение HW.
  • Зачем скрывать сообщения выше HW.
  • Связь с выбором лидера.

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

  • Путать high watermark (граница видимости) с committed offset потребителя.
  • Думать, что consumer видит всё, что записал лидер.

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

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

Показать варианты и ответ
  • ✓Offset, реплицированный во все реплики ISR; consumer читает только до него
  • ✗Последний offset, закоммиченный consumer-ом; всё, что дальше, считается непрочитанным
  • ✗Это максимальный размер партиции на диске
  • ✗Это таймаут, после которого сообщение удаляется

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

  • Почему consumer не видит незареплицированные сообщения?
  • Что такое log end offset?

Разбор темы

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

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

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

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

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