RabbitMQ – брокер сообщений с открытым исходным кодом, написанный на Erlang и выпущенный в 2007 году. Изначально реализует протокол AMQP 0-9-1, поддерживает также MQTT, STOMP и собственные потоки (streams). Сейчас проект развивается в Broadcom (после покупки VMware), распространяется по лицензии MPL 2.0.
Основные понятия
- Производители отправляют сообщения в обменники (exchanges).
- Обменники маршрутизируют сообщения в очереди по правилам привязки: direct, topic, fanout, headers.
- Потребители получают сообщения из очередей и подтверждают обработку.
- Кворумные очереди для отказоустойчивости, потоки для журналов событий.
Где применяется
- Асинхронные задачи и фоновая обработка.
- Интеграция микросервисов и приложений.
- Распределение нагрузки между обработчиками.
- Обмен сообщениями с IoT-устройствами по MQTT.
Сравнение с Kafka
RabbitMQ – классический брокер очередей с гибкой маршрутизацией и удалением сообщений после обработки; Kafka – распределённый журнал событий с долговременным хранением и повторным чтением.