Ответ вслух Middle Очереди и события спрашивают часто обновлено

Kafka против RabbitMQ

Вопрос

Чем Kafka отличается от RabbitMQ и когда что выбирать?

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

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

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

Коротко

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

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

  • Kafka: распределённый лог, сообщения хранятся заданное время независимо от прочтения

  • Консьюмер в Kafka сам хранит offset и может перечитать

  • Порядок в Kafka только внутри партиции, параллелизм ограничен числом партиций

  • RabbitMQ: брокер с маршрутизацией через exchange, сообщение удаляется после ack

  • Kafka для потоков событий и многих читателей, RabbitMQ для очередей задач и сложной маршрутизации

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

  • Как в RabbitMQ сделать отложенный ретрай?
  • Что произойдёт при ребалансировке группы в Kafka?

Разбор

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

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

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