Upload
alexandr-fedorov
View
290
Download
0
Embed Size (px)
Citation preview
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 ядро
Спасибо за внимание!