RabbitMQ обычно используют как брокер маршрутизируемых сообщений и очередей задач, Kafka — как распределённый журнал событий с partitions, offsets и независимым повторным чтением.
В чём базовые различия RabbitMQ и Kafka, включая различия их концепций?
RabbitMQ обычно используют как брокер маршрутизируемых сообщений и очередей задач, Kafka — как распределённый журнал событий с partitions, offsets и независимым повторным чтением.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
RabbitMQ обычно используют как брокер маршрутизируемых сообщений и очередей задач, Kafka — как распределённый журнал событий с partitions, offsets и независимым повторным чтением.
В типичной очереди RabbitMQ сообщение подтверждают после обработки; маршрутизация строится через exchanges и bindings. Kafka хранит события по retention независимо от того, прочитала ли их конкретная consumer group. Это базовое сравнение: у RabbitMQ существуют и stream-механизмы, поэтому нельзя свести все возможности к одной модели. Выбор зависит от replay, порядка, fan-out, задержки, нагрузки и гарантий. Ни один продукт сам по себе не делает побочные эффекты consumer строго однократными.