Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы====== 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 ===== ===== Клиенты ===== * [[php:modules:rabbitmq|]] * [[servers:rabbitmq:rabbitmq_management|]] ===== Ссылки ===== * http://habrahabr.ru/post/150134/ * http://habrahabr.ru/post/200870/ * http://habrahabr.ru/post/201096/ * http://habrahabr.ru/post/201178/ * [[http://habrahabr.ru/post/149694/|RabbitMQ tutorial 1 — Hello World (python)]] * [[http://habrahabr.ru/post/150134/|RabbitMQ tutorial 2 — Очередь задач (python)]] * [[http://habrahabr.ru/post/200870/|RabbitMQ tutorial 3 — Публикация/Подписка (php)]] * [[http://habrahabr.ru/post/201096/|RabbitMQ tutorial 4 — Роутинг (php)]] * [[http://habrahabr.ru/post/201178/|RabbitMQ tutorial 5 — Тематики (php)]] * [[http://habrahabr.ru/post/236221/|RabbitMQ tutorial 6 — Удаленный вызов процедур (эта статья, python)]] * http://habrahabr.ru/post/271807/СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal