Карта / RabbitMQ / Kafka vs RabbitMQ

Kafka vs RabbitMQ

Оба — брокеры сообщений, но устроены принципиально по-разному и подходят под разные задачи.

KafkaRabbitMQ
Модельжурнал событий (log)классическая очередь
Сообщение после обработкиостаётся (хранится по TTL)удаляется
Пропускная способностьочень высокая, миллионы сообщений/секвысокая, но обычно ниже Kafka
Порядок сообщенийгарантирован внутри партициигарантирован внутри очереди
Сложность маршрутизациипростая (топик → consumer)гибкая (exchange-типы — см. тему «Exchange, Queue, Binding»)
Типичное применениеevent streaming, аналитика, журналы событийклассические задачи и очереди заданий
Копнуть глубже

Когда выбирать Kafka:

  • нужна высокая пропускная способность (миллионы сообщений в секунду);
  • нужно, чтобы несколько разных потребителей читали одни и те же события независимо;
  • важна история событий (event sourcing, аналитика по прошлым событиям).

Когда выбирать RabbitMQ:

  • классическая задача “поставить в очередь и обработать” (отправка email, генерация отчётов);
  • нужна гибкая маршрутизация сообщений по сложным правилам;
  • объёмы сообщений умеренные, простота настройки важнее предельной пропускной способности.

На практике выбор часто определяется уже существующей инфраструктурой компании, а не только теоретическими преимуществами — если в команде уже есть опыт с Kafka для других задач, разумно использовать его и для новой задачи, не вводя ещё одну технологию без явной необходимости.

🎤 Закрыл тему, если можешь объяснить:
• ключевые различия Kafka и RabbitMQ по модели хранения сообщений;
• в каких сценариях выбрать каждый из них (если дошёл до 2-го слоя).