Kafka и RabbitMQ
Вопрос
Расскажи, чем Kafka отличается от RabbitMQ и как ты выбираешь между ними.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
RabbitMQ: брокер очередей, exchange и маршрутизация, сообщение удаляется после ack
Kafka: журнал, топики и партиции, хранение по сроку, перечитывание
Порядок: в очереди у RabbitMQ, в партиции у Kafka по ключу
Масштабирование: consumer groups в Kafka
Выбор: задачи и маршрутизация против потока событий, нагрузки и перечитки
Что могут спросить следом
- Как обеспечить порядок событий одного клиента в Kafka?
- Что такое lag и почему его мониторят?
Разбор
RabbitMQ это классический брокер: сообщения приходят в exchange и по правилам маршрутизации попадают в очереди, потребитель подтверждает обработку, и сообщение удаляется. Он удобен для задач и сложной маршрутизации. Kafka это распределённый журнал: топик делится на партиции, сообщения хранятся заданное время, разные группы потребителей читают независимо и могут перечитать историю. Порядок в Kafka гарантирован внутри партиции, поэтому события одного объекта публикуют с одинаковым ключом. Kafka выбираю для потока событий, высокой нагрузки, когда нужно несколько независимых потребителей и перечитывание, RabbitMQ для очередей задач, приоритетов и гибкой маршрутизации.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.