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

В чем разница между Kafka и RabbitMQ c точки зрения модели обмена сообщениями

Kafka и RabbitMQ используют разные модели обмена сообщениями:

RabbitMQ (брокер сообщений):

  • Работает по модели publish-subscribe и point-to-point (очереди).
  • Сообщения удаляются после обработки (по умолчанию).
  • Поддерживает сложные маршрутизации (exchanges, routing keys).
  • Гарантирует доставку (acknowledgments).
  • Оптимизирован для короткоживущих сообщений и RPC-сценариев.

Kafka (распределенный лог):

  • Использует модель append-only log (сообщения хранятся).
  • Сообщения не удаляются после чтения (хранятся по TTL).
  • Подписчики управляют offset'ами (могут перечитывать).
  • Оптимизирован для потоковой обработки и big data.
  • Высокая пропускная способность, но выше latency.

Пример Kafka:

python
producer.send('topic', value={'data': 'test'})
# Сообщение остается в топике для других consumers

Пример RabbitMQ:

python
channel.basic_publish(exchange='', routing_key='queue', body='msg')
# Сообщение уходит первому свободному consumer'у и удаляется
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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