RabbitMQ ‒ это брокер сообщений. Его основная цель ‒ принимать и отдавать сообщения. Его можно представлять себе, как почтовое отделение: когда Вы бросаете письмо в ящик, Вы можете быть уверены, что рано или поздно почтальон доставит его адресату [видимо, автор ни разу не имел дела с Почтой России]. В этой аналогии RabbitMQ является одновременно и почтовым ящиком, и почтовым отделением, и почтальоном.
Поставщик, подписчик и брокер не обязаны находиться на одной физической машине, обычно они находятся на разных.
RabbitMQ предоставляет интерфейс, соединяющий отправителей (Publishers) с получателями (Consumers) при помощи брокера, который распределяет данные в соответствующие списки — очереди сообщений (Message Queues).
APPLICATION | EXCHANGE | TASK LIST | WORKER |
[DATA] | [DATA] | [D]+[D][D][D] | [DATA] |
Publisher | EXCHANGE | Queue | Consumer |
В отличие от других решений, RabbitMQ является полноценным стеком приложений, а не простой базой для применения выбранных вами приложений. Он предоставляет все необходимые инструменты в комплексе.
AMQP (Advanced Message Queuing Protocol) – это широко распространённый открытый стандарт для распространения и передачи сообщений. Как протокол и стандарт, он устанавливает общую основу для взаимодействия различных приложений и брокеров сообщений и устраняет проблемы, вызванные индивидуальным проектированием программ.
$ apt-get install rabbitmq-server
# Запуск: service rabbitmq-server start # Остановка: service rabbitmq-server stop # Перезапуск: service rabbitmq-server restart # Проверка статуса: service rabbitmq-server status
$ 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 извне
echo "[{rabbit, [{loopback_users, []}]}]." > /etc/rabbitmq/rabbitmq.config
По умолчанию консоль будет доступна по порту 15672 на адресе http://[IP_адрес_сервера]:15672