Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
servers:rabbitmq [2015/11/27 02:30] – [RabbitMQ] mirocowservers:rabbitmq [2016/02/16 14:39] (текущий) mirocow
Строка 1: Строка 1:
-====== RabbitMQ ======+{{tag>message-broker-server server daemon}} 
 + 
 + 
 +====== 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 
 + 
 +===== Запуск и Провека ===== 
 + 
 +<code sh> 
 +# Запуск: 
 +service rabbitmq-server start 
 +# Остановка: 
 +service rabbitmq-server stop 
 +# Перезапуск: 
 +service rabbitmq-server restart 
 +# Проверка статуса: 
 +service rabbitmq-server status   
 +</code> 
 +===== Установка плагинов ===== 
 + 
 +==== Заголовок ==== 
 + 
 +  $ rabbitmq-plugins enable rabbitmq_amqp1_0 rabbitmq_management rabbitmq_management_visualiser rabbitmq_mqtt rabbitmq_stomp 
 +   
 +==== Заголовок ==== 
 +   
 +  $ rabbitmq-plugins enable rabbitmq_management rabbitmq_management_visualiser rabbitmq_stomp 
 +===== Запуск консоли ===== 
 + 
 +Разрешаем доступ к консоли по guest извне  
 + 
 +<note important>Только для разработки\\ 
 +<code sh> 
 +echo "[{rabbit, [{loopback_users, []}]}]." > /etc/rabbitmq/rabbitmq.config 
 +</code> 
 +</note> 
 + 
 +По умолчанию консоль будет доступна по порту 15672 на адресе **http://[IP_адрес_сервера]:15672** 
 + 
 +===== Клиенты ===== 
 + 
 +  * [[php:modules:rabbitmq|]] 
 +  * [[servers:rabbitmq:rabbitmq_management|]]
  
-Это один из наиболее популярных брокеров сообщений с открытым исходным кодом, который поставляется по лицензии Mozilla Public License v1.1 как реализация протокола Advanced Message Queuing Protocol. Разработанный на языке Erlang, RabbitMQ довольно прост в использовании и установке. 
 ===== Ссылки ===== ===== Ссылки =====
  
-  * http://habrahabr.ru/post/149694/ 
   * http://habrahabr.ru/post/150134/   * http://habrahabr.ru/post/150134/
   * http://habrahabr.ru/post/200870/   * http://habrahabr.ru/post/200870/
   * http://habrahabr.ru/post/201096/   * http://habrahabr.ru/post/201096/
   * http://habrahabr.ru/post/201178/   * 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/
 +  * [[http://habrahabr.ru/post/119839/|Моделируем полёт PHP на крыльях Erlang]]
 +  * [[http://www.8host.com/blog/ustanovka-i-upravlenie-rabbitmq/|УСТАНОВКА И УПРАВЛЕНИЕ RABBITMQ]]
 +  * http://habrahabr.ru/post/235505/