Вопрос проверяет умение выбирать брокер сообщений под конкретные требования системы.
Kafka лучше подходит для потоковой обработки, больших объемов данных и повторного чтения сообщений. RabbitMQ чаще используют для классических очередей задач и сложной маршрутизации. Kafka ориентирована на throughput и хранение истории, RabbitMQ — на доставку и гибкость. Выбор зависит от характера нагрузки и архитектуры.
Kafka и RabbitMQ решают схожие задачи, но с разными приоритетами и архитектурой.
Message broker — система для передачи сообщений между компонентами приложения.
Kafka подходит, если:
нужен высокий throughput;
важна обработка потоков событий;
требуется хранить сообщения и перечитывать их;
есть несколько независимых consumer group.
Типичные кейсы:
event streaming;
аналитика;
логирование.
RabbitMQ лучше, если:
нужна сложная маршрутизация;
важны подтверждения доставки;
задачи обрабатываются один раз;
сообщения относительно небольшие.
Типичные кейсы:
фоновые задачи;
RPC поверх очередей;
интеграция сервисов.
Kafka:
pull-модель;
хранение сообщений;
масштабирование через партиции.
RabbitMQ:
push-модель;
удаление сообщений после ack;
гибкие exchange.
Kafka выбирают для потоков данных и высокой нагрузки, RabbitMQ — для очередей задач и сложной логики доставки. Универсального решения нет, выбор зависит от сценария.