Rabbit mq

Preview:

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 ядро

Спасибо за внимание!