RabbitMQ

RabbitMQ ‒ это брокер сообщений. Его основная цель ‒ принимать и отдавать сообщения. Его можно представлять себе, как почтовое отделение: когда Вы бросаете письмо в ящик, Вы можете быть уверены, что рано или поздно почтальон доставит его адресату [видимо, автор ни разу не имел дела с Почтой России]. В этой аналогии RabbitMQ является одновременно и почтовым ящиком, и почтовым отделением, и почтальоном.

Терминалогия

Producer (поставщик) ‒ программа, отправляющая сообщения.

Queue (очередь) ‒ имя «почтового ящика». Она существует внутри RabbitMQ. Хотя сообщения проходят через RabbitMQ и приложения, хранятся они только в очередях. Очередь не имеет ограничений на количество сообщений, она может принять сколь угодно большое их количество ‒ можно считать ее бесконечным буфером. Любое количество поставщиков может отправлять сообщения в одну очередь, также любое количество подписчиков может получать сообщения из одной очереди.

Consumer (подписчик) ‒ программа, принимающая сообщения. Обычно подписчик находится в состоянии ожидания сообщений.

Поставщик, подписчик и брокер не обязаны находиться на одной физической машине, обычно они находятся на разных.

Как работает RabbitMQ?

RabbitMQ предоставляет интерфейс, соединяющий отправителей (Publishers) с получателями (Consumers) при помощи брокера, который распределяет данные в соответствующие списки — очереди сообщений (Message Queues).

APPLICATION	EXCHANGE	TASK LIST	WORKER
[DATA]	[DATA]	[D]+[D][D][D]	[DATA]
Publisher	EXCHANGE	Queue	Consumer

Преимущества RabbitMQ

В отличие от других решений, RabbitMQ является полноценным стеком приложений, а не простой базой для применения выбранных вами приложений. Он предоставляет все необходимые инструменты в комплексе.

Краткий обзор AMQP

AMQP (Advanced Message Queuing Protocol) – это широко распространённый открытый стандарт для распространения и передачи сообщений. Как протокол и стандарт, он устанавливает общую основу для взаимодействия различных приложений и брокеров сообщений и устраняет проблемы, вызванные индивидуальным проектированием программ.

Установка RabbitMQ

$ apt-get install rabbitmq-server

Установка плагинов

Клиенты

rabbitmq

rabbitmq_management

Ссылки

http://habrahabr.ru/post/150134/

http://habrahabr.ru/post/200870/

http://habrahabr.ru/post/201096/

http://habrahabr.ru/post/201178/

RabbitMQ tutorial 1 — Hello World (python)

RabbitMQ tutorial 2 — Очередь задач (python)

RabbitMQ tutorial 3 — Публикация/Подписка (php)

RabbitMQ tutorial 4 — Роутинг (php)

RabbitMQ tutorial 5 — Тематики (php)

RabbitMQ tutorial 6 — Удаленный вызов процедур (эта статья, python)

http://habrahabr.ru/post/271807/

Моделируем полёт PHP на крыльях Erlang

УСТАНОВКА И УПРАВЛЕНИЕ RABBITMQ

http://habrahabr.ru/post/235505/