Встречается на собеседованиях • сегодня

В чем разница между Kafka и RabbitMQ

Kafka и RabbitMQ — это брокеры сообщений, но с разными подходами к обработке данных:

  • RabbitMQ — классический message broker, работает по модели очередей (point-to-point) и publish-subscribe. Подходит для задач, где важны гарантии доставки, гибкость маршрутизации (exchanges, routing keys) и относительно низкие нагрузки. Пример:
python
channel.basic_publish(exchange='logs', routing_key='', body='Hello World!')
  • Kafka — распределённый log-ориентированный брокер, оптимизирован для потоковой обработки больших объёмов данных с высокой пропускной способностью. Сообщения хранятся долго, поддерживается повторное чтение (consumer groups). Пример:
python
producer.send('topic', value={'key': 'value'})

Ключевые отличия:

  1. Производительность: Kafka обрабатывает миллионы сообщений в секунду, RabbitMQ — десятки тысяч.
  2. Хранение: Kafka хранит сообщения долго (дни/недели), RabbitMQ удаляет после доставки.
  3. Модель: RabbitMQ — «умный брокер, глупые потребители», Kafka — «простой брокер, умные потребители».
  4. Гарантии: RabbitMQ гарантирует доставку, Kafka — at-least-once/exactly-once семантику.

Выбор зависит от задачи: RabbitMQ для сложной маршрутизации и RPC, Kafka — для big data и стриминга.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы