Ответ вслух Junior Kafka в Spring спрашивают часто обновлено

Как устроена Kafka

Вопрос

Объясните, как устроена Kafka: топики, партиции, offset, группы потребителей.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Kafka это распределённый журнал. Топик разбит на партиции, каждая это упорядоченный неизменяемый лог, у каждого сообщения свой offset.

Что должно прозвучать в ответе

  • Топик делится на партиции, партиция это упорядоченный лог

  • Offset это позиция сообщения, потребитель хранит свой offset

  • Сообщения не удаляются после чтения, хранятся по retention

  • Consumer group: партиция на одного потребителя группы

  • Ключ определяет партицию и порядок

  • Репликация: лидер и реплики

Что могут спросить следом

  • Чем Kafka отличается от RabbitMQ?
  • Что происходит при ребалансировке?

Разбор

Kafka это распределённый журнал. Топик разбит на партиции, каждая это упорядоченный неизменяемый лог, у каждого сообщения свой offset. Продюсер пишет сообщение в партицию по хешу ключа, поэтому сообщения с одним ключом идут по порядку. Сообщения не удаляются после чтения, а хранятся по времени или размеру, и разные группы потребителей читают топик независимо. Внутри группы каждую партицию читает один потребитель, так масштабируется обработка, но не больше числа партиций. Потребитель коммитит свой offset и после перезапуска продолжает с него. Надёжность обеспечивает репликация: у партиции лидер и реплики, продюсер с acks=all ждёт подтверждения от синхронных реплик. В отличие от классической очереди, Kafka позволяет перечитать историю и подключать новых потребителей к старым данным.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме