Заметки бизнес-аналитика
Главная › Системный анализ › Интеграции и REST API

Чем различаются Kafka и RabbitMQ: простыми словами

Конспект статьи. Автор оригинала: Павел Малыгин (trusted, Иннотех)

Базовые понятия брокеров на бытовых аналогиях и сравнение Kafka и RabbitMQ.

Паттерны обмена

Request-response, fire-and-forget, publish-subscribe, point-to-point. Синхронный request-response требует, чтобы получатель был известен и доступен в момент вызова. Брокер снимает эти ограничения: отправитель не блокируется и не знает получателя.

Очередь и топик

  • Очередь — сообщение получает один потребитель, после чтения оно удаляется.
  • Топик — сообщение получают все подписчики.

Гарантии

At most once — быстро, но возможны потери; at least once — подтверждения и повторы, возможны дубли; exactly once — самая сложная.

RabbitMQ: умный брокер, простой потребитель

Издатель шлёт в exchange, который раскладывает по очередям; брокер сам раздаёт сообщения (push) и удаляет обработанные. Поддерживает AMQP, MQTT, STOMP.

Kafka: простой брокер, умный потребитель

Распределённый реплицируемый журнал. Сообщения не удаляются после чтения, потребитель хранит свой offset и может перечитать историю. Параллелизм определяется числом партиций. Высокая пропускная способность, но высокий порог входа.

Выбор

Kafka — большие объёмы, хранение, многократное чтение. RabbitMQ — проще в настройке, гибкая маршрутизация, асинхронный обмен в микросервисах.

Источник: Чем различаются Kafka и RabbitMQ: простыми словами
Автор: Павел Малыгин (trusted, Иннотех)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.