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