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

Брокеры сообщений Kafka и RabbitMQ в реальной жизни

Конспект статьи. Автор оригинала: Александр Борецкий (Т1)

Архитектор облачной платформы об устройстве Kafka и RabbitMQ и выборе между ними.

Kafka

Для непрерывных потоков: рекомендации, ленты, скоринг рисков, логи и мониторинг. Сообщения хранятся на диске как неизменяемый журнал.

  • Топик — логический канал; партиции распределены по брокерам, порядок гарантирован только внутри партиции, сообщения с одним ключом попадают в одну партицию.
  • Offset — позиция чтения; автокоммит может привести к потере или повтору, для точного контроля — ручной коммит.
  • Группы потребителей и стратегии распределения партиций (Range, RoundRobin, Sticky).
  • Надёжность: replication.factor, acks (0, 1, all), min.insync.replicas, идемпотентный producer.
  • Retention и compact (последнее значение по ключу), экосистема: Streams, Connect, Schema Registry.

RabbitMQ

Классические очереди: сообщение обработано — удалено. Для гарантированной доставки, уведомлений, обмена между критичными системами. Exchange: direct, fanout, topic, headers. Настройки: TTL, dead letter exchange, ограничения длины, приоритеты, prefetch, ручное подтверждение, DLQ, quorum queues.

Сравнение для аналитика

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

Источник: Брокеры сообщений Kafka и RabbitMQ в реальной жизни
Автор: Александр Борецкий (Т1)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.