RabbitMQ обычно используют как брокер маршрутизируемых сообщений и рабочих очередей, Kafka — как распределённый сохраняемый журнал событий с независимыми потребителями.
Чем отличаются RabbitMQ и Kafka?
RabbitMQ обычно используют как брокер маршрутизируемых сообщений и рабочих очередей, Kafka — как распределённый сохраняемый журнал событий с независимыми потребителями.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
RabbitMQ обычно используют как брокер маршрутизируемых сообщений и рабочих очередей, Kafka — как распределённый сохраняемый журнал событий с независимыми потребителями.
В типичной очереди RabbitMQ обработанное и подтверждённое сообщение удаляется; в Kafka чтение не удаляет запись, а consumer хранит позицию и может перечитывать доступную историю. У RabbitMQ также есть streams, поэтому сравнение «очередь против лога» не описывает все режимы.
Kafka удобна для больших потоков и нескольких проекций данных, RabbitMQ — для гибкой маршрутизации задач. В обоих случаях надо отдельно выбрать подтверждения, устойчивость хранения и обработку повторов. Решение принимают по требованиям к порядку, retention, задержке и эксплуатации.