RabbitMQ ‒ обмен сообщениями, который просто работает.
AMQP(Advanced Message Queueing Protocol)
•Открытый протокол для передачи сообщений
между компонентами системы
•Отдельные подсистемы (или независимые
приложения) могут обмениваться
произвольным образом сообщениями через
AMQP-брокер
•Осуществляет маршрутизацию
•Распределение потоков данных
•Подписку на нужные типы сообщений
•Сообщение (message)
•Точка обмена (exchange):
fanout, direct, topic.
•Очередь (queue)
AMQP основан на трех понятиях
Проблема коммуникаций
RabbitMQ
Независимость компонентов системы друг от друга
Экономия ресурсов достигается вследствие
возможности разумно распределять информацию
Надежность очередей достигается благодаря
возможности накапливать сообщения
Гарантия последовательной обработки,
позволяющая точно контролировать потоки данных
в системе и запускать асинхронную обработку там,
где это необходимо
Максимальная стабильность
Масштабируемость
Open source
RabbitMQ написан на Erlang
RabbitMQ написан на языке Erlang и
базируеться на базе СУБД Mnesia которая
также написана на Erlang.
Mnesia – это распределённая СУБД
реального времени, по своей сути
используеться для встраеваемых решений и
этим похожа на Berkeley DB.
RabbitMQ изнутри
Платформы
Кто использует?
•Гарантия доставки
•Сохранность сообщений при авариях разного вида
•Клиентские библиотеки для php, c++
•Скорость работы: 1-10 тыс сообщений на 1 ядро