Быть в курсе
Назад к списку статей

Установка, настройка и использование RabbitMQ

Интернет версии Веб 2.0 начал активно развиваться в начале 21 века, с появлением новых сайтов и веб-приложений. Используя синхронные вызовы, разработчики столкнулись с трудностями обмена данными. Асинхронные системы обмена сообщениями решили эти проблемы, позволяя передавать данные через посредников. В статье мы рассмотрим брокер сообщений RabbitMQ и как его настроить.

Что такое RabbitMQ

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

Компания LShift совместно с CohesiveFT поставили цель по разработке брокера сообщений с поддержкой AMQP — открытого стандарта, который помогает совместить системы обмена сообщениями между собой. Так в 2007 году появился брокер сообщений RabbitMQ.

По мере развития продукта в RabbitMQ была добавлена поддержка протоколов MQTT (Message Queuing Telemetry Transport) и STOMP (Simple Text Oriented Message Protocol). Это позволило интегрировать брокер сообщений со многими популярными устройствами и приложениями.

Также RabbitMQ обладает рядом преимуществ, среди которых:

  • надежность. Это значит, что все сообщения в RabbitMQ будут доставлены с соблюдением порядка, даже если произошел технический сбой;
  • масштабируемость. Брокер сообщений способен работать с большими объемами данных. Также он может быть развернут не только на отдельном сервере, но и в распределенной среде;
  • гибкость. RabbitMQ поддерживает большое количество сценариев для маршрутизации и распределения сообщений. Это позволяет сочетать программу со многими приложениями.

Принципы работы RabbitMQ

Брокер сообщений RabbitMQ включает в себя несколько компонентов:

  1. Сообщение (Message) — данные любого типа и формата, которые доставляются от отправителя к получателю через очередь.
  2. Продюсер (Producer) — компонент, который размещает сообщения в обменнике.
  3. Обменник (Exchange) — элемент, который принимает сообщения и распределяет их по очередям.
  4. Биндинг (Binding) — соединение между обменником и очередью. Это своеобразный «коридор», по которому сообщение направляется в нужную очередь.
  5. Очередь (Queue) — пространство, в котором хранятся сообщения до их обработки получателем. Очереди могут быть как постоянными, так и временными.
  6. Получатель (Consumer) — элемент, который принимает сообщения из очередей и обрабатывает их.

RabbitMQ работает по следующему алгоритму:

  1. Продюсер направляет сообщение в обменник.
  2. Обменник назначает нужную очередь и отправляет в нее сообщение.
  3. Получатель подписывается на очередь, чтобы принять сообщение.
  4. Получатель принимает сообщение и обрабатывает его.
  5. Получатель отправляет подтверждение о том, что принял сообщение.
  6. Если получатель не отправил подтверждение о доставке, сообщение возвращается обратно в свою очередь.
Источник: Shutterstock. Подробная инструкция по установке и настройке RabbitMQ поможет даже тем, у кого лапки

Как установить и настроить RabbitMQ на Ubuntu и Debian

Чтобы начать установку:

  1. Подключитесь к серверу по протоколу SSH.
  2. Обновите список пакетов:

3. Установите пакеты erlang и gnupg — они понадобятся для корректной работы RabbitMQ:

4. Установите RabbitMQ:

5. Добавьте службу в автозагрузку:

6. Запустите службу:

7. Проверьте, запущен ли RabbitMQ:

Служба должна иметь статус Active:

8. Добавьте плагин для управления брокером сообщений:

9. Создайте пользователя:

Где:

  • username — имя пользователя,
  • Password — пароль пользователя.

10. Присвойте пользователю привилегии администратора:

Вместо username укажите имя пользователя.

11. Предоставьте пользователю полные права ко всем файлам сервера:

Вместо username укажите имя пользователя.

12. В настройках брандмауэра откройте порты для работы RabbitMQ:

Затем перезапустите брандмауэр:

13. Перезапустите RabbitMQ:

14. Проверьте, как прошла установка. Для этого в адресной строке браузера введите 123.123.123.123:15672 (вместо 123.123.123.123 укажите IP-адрес вашего сервера). Если установка прошла корректно, на экране отобразится окно авторизации. Введите логин и пароль, которые вы создали на шаге 9, и кликните Login:

Как установить и настроить RabbitMQ на CentOS Stream

Чтобы начать установку:

  1. Подключитесь к серверу по протоколу SSH.
  2. Обновите список пакетов:

3. Добавьте GPG-ключи для RabbitMQ и Erlang. Для этого поочередно выполните команды:

4. Создайте файл репозитория:

Затем добавьте строки:

После этого сохраните изменения и закройте файл.

5. Выполните обновление, чтобы применить новые репозитории:

6. Установите зависимости для корректной работы RabbitMQ:

7. Установите Erlang и RabbitMQ:

8. Запустите службу RabbitMQ и добавьте ее в автозагрузку. Для этого поочередно выполните команды:

9. Убедитесь в том, что RabbitMQ запущен. Для этого выполните команду:

Вывод должен иметь следующий вид:

10. Включите плагин управления брокером сообщения:

11. Создайте пользователя:

Где:

  • username — имя пользователя,
  • Password — пароль пользователя
  1. Присвойте пользователю привилегии администратора:

Вместо username укажите имя пользователя.

  1. Предоставьте пользователю полные права ко всем файлам сервера:

Вместо username укажите имя пользователя.

  1. В настройках брандмауэра откройте порты для работы RabbitMQ. Для этого поочередно выполните команды:

Проверьте, как прошла установка. Для этого в адресной строке браузера введите 123.123.123.123:15672 (вместо 123.123.123.123 укажите IP-адрес вашего сервера). Если установка прошла корректно, на экране отобразится окно авторизации. Введите логин и пароль, которые вы создали на шаге 11, и кликните Login:

Мы описали установку RabbitMQ для трех наиболее популярных операционных систем. С полным списком поддерживаемых ОС и процедурами установки вы можете ознакомиться в официальной документации.

Галина Петрова

Интеграция S3 с другими AWS-сервисами (Lambda, EC2 и CloudFront)
В этой статье мы рассмотрим, как Amazon S3 взаимодействует с ключевыми сервисами AWS: Lambda, EC2 и CloudFront. (далее…)
Подробнее
VDI: как работает виртуализация рабочих столов и зачем она бизнесу
В статье разберем, что такое VDI, каким образом работает виртуализация десктопов и кому подойдет этот подход. Также рассмотрим, какие задачи...
Подробнее
Как поддержать пиковые нагрузки и отказоустойчивость в маркетинговых проектах: кейс Novomail.ru
Для платформы массовых email-рассылок высокая доступность, отказоустойчивость и способность быстро масштабироваться под резкие пиковые нагрузки — ключевые задачи. Рассказываем, как...
Подробнее
Как Data Warehouse (DWH) помогает экономить бизнесу? Разбираемся в корпоративном хранилище данных
Современные компании работают с огромными объемами информации: данными о клиентах, продажах, логистике, и многом другом. Чтобы принимать обоснованные решения, руководителям...
Подробнее
Что такое OLAP-система: объясняем простыми словами
В работе онлайн-бизнеса важную роль играют данные и работа с ними. Эти данные имеют разные форматы и могут собираться из...
Подробнее
HashiCorp Vault: как он помогает защитить ваши секреты
В любой современной ИТ-инфраструктуре количество конфиденциальных данных стремительно растет: пароли баз данных, API-ключи, сертификаты, токены доступа. Хранить их в коде,...
Подробнее
Что такое MQTT-сервер
Давайте погрузимся в мир интернета вещей и разберемся с ключевым элементом его коммуникаций ― MQTT-сервером. Как организовать поток данных от...
Подробнее
Как настроить резервное копирование в S3
Резервное копирование данных из объектного хранилища S3 — это процесс создания копий данных, которые хранятся в Amazon S3 или аналогичных...
Подробнее
Как настроить синхронизацию часов с помощью NTP
Network Time Protocol (NTP) — сетевой протокол для синхронизации системного времени компьютеров через сетевое соединение. При установке соединения NTP-клиент (ваш...
Подробнее
Что такое ETL и с какими задачами поможет
Каждый современный бизнес работает с данными — много и постоянно. Но просто собрать данные недостаточно. Чтобы они стали полезными, их...
Подробнее