Брокеры сообщений#

Общая информация#

Автоматизированная служба RabbitMQ в К2 Облаке позволяет быстро развёртывать и настраивать брокер сообщений.

RabbitMQ — это популярный брокер сообщений с открытым исходным кодом. Он служит посредником в процессе пересылки сообщений между компонентами информационных систем, которые взаимодействуют между собой. Благодаря брокеру им больше не нужно отслеживать статус доставки сообщений, заниматься повторной отправкой сообщений и ждать завершения пересылки — все эти задачи он берёт на себя. Это позволяет снизить количество задач, выполняемых другими компонентами системы, и сократить время, затрачиваемое на их выполнение, что улучшает производительность системы в целом.

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

Поддержка широкого спектра протоколов обмена сообщениями позволяет использовать RabbitMQ в различных системах, которые работают с разными протоколами. В частности, он поддерживает такие протоколы, как AMQP (Advanced Message Queuing Protocol), MQTT (Message Queuing Telemetry Transport), STOMP (Streaming Text Oriented Messaging Protocol) и XMPP (Extensible Messaging and Presence Protocol).

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

В К2 Облаке поддерживаются следующие версии RabbitMQ:

  • 3.8.30;

  • 3.9.16;

  • 3.10.0.

Перед началом работы#

Чтобы начать работу с сервисом брокера сообщений, выполните следующие действия:

  1. Создайте проект, если у вас его нет.

  2. В разделе IAM создайте пользователя, добавьте его в созданный проект и назначьте ему политику PaaSServicePolicy для предоставления необходимых привилегий для работы с сервисами PaaS.

    Примечание

    Если вы хотите, чтобы пользователь имел доступ к другим сервисам облака, то включите его в группу CloudAdministrators. В этом случае назначать ему политику PaaSServicePolicy не нужно.

  3. Убедитесь в наличии всех необходимых ресурсов в проекте — подсетей, SSH-ключей, групп безопасности. Если этих ресурсов нет, создайте их.

  4. Ознакомьтесь с рекомендациями по работе с сервисом в облаке.

Запуск сервиса RabbitMQ#

Для запуска сервиса в подразделе Витрина сервисов или Установленные сервисы выберите сервис RabbitMQ на вкладке Брокеры сообщений и нажмите Создать.

Процедура запуска сервиса состоит из следующих основных этапов:

  1. Задайте параметры сети:

    • Конфигурацию кластера, в котором будет развёрнут сервис. Для выбора доступны следующие опции:

      • с одним узлом (неотказоустойчивый сервис);

      • с тремя узлами в одной зоне доступности;

      • с тремя узлами в трёх зонах доступности;

    • VPC, в котором будет развёрнут сервис.

    • Группы безопасности для регулирования трафика на интерфейсах экземпляров, где будет запущен сервис RabbitMQ.

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

    Примечание

    Для запуска сервиса в выбранном VPC необходимо предварительно создать подсеть в предпочтительной зоне доступности (в конфигурации с одной зоной), либо по одной подсети в каждой зоне доступности (в конфигурации с тремя зонами). Кроме того, в используемых зонах доступности должны поддерживаться одинаковые типы дисков.

    Примечание

    Опция присоединения сетевых интерфейсов может быть полезна, например, когда требуется пересоздать кластер, на котором был развёрнут сервис брокера сообщений. Если при удалении сервиса не удалять присоединённые сетевые интерфейсы, то их можно использовать повторно для подключения к подсетям узлов кластера, в котором будет развёрнут новый сервис. Это позволяет сохранить прежние сетевые настройки, такие как внутренние IP-адреса и группы безопасности, и не задавать их заново.

  2. Укажите конфигурацию экземпляра или экземпляров, на которых будет запущен сервис брокера сообщений.

    Выберите тип экземпляра и характеристики его дисков: тип, размер и IOPS (если это доступно для данного типа).

    Кроме того, вы можете указать SSH-ключ. В этом случае после автоматической настройки сервиса экземпляры виртуальных машин будут доступны по SSH.

    Внимание

    Мы предоставляем возможность подключения к экземплярам виртуальных машин по SSH-ключу, пока новый сервис RabbitMQ находится на этапе бета-тестирования. Данная возможность в будущем может быть отключена.

  3. Задайте основные параметры сервиса:

    • Имя сервиса — произвольное уникальное имя для сервиса.

    • Версию.

    • Опцию установки агентов для мониторинга. Для централизованного мониторинга сервиса брокера сообщений необходимо предварительно развернуть сервис мониторинга на базе Prometheus.

      • Сервис мониторинга — Выбор сервиса мониторинга доступен только при выборе опции Подключить мониторинг.

      • Метки для мониторинга — Опционально можно задать метки, которые установленные агенты мониторинга будут присваивать собираемым метрикам (см. подробнее о метках). Метки можно задать только при выборе опции Подключить мониторинг.

    • Опцию установки агентов для логирования — Для централизованного логирования сервиса PaaS необходимо предварительно создать сервис логирования. После создания сервиса PaaS установить агенты логирования можно только вручную.

      • Сервис логирования — Выбор доступен только при выборе опции Подключить логирование.

      • Теги для логирования — Теги назначаются журналам при их импорте сервисом логирования. Они упрощают поиск нужных журналов. Теги можно задать только при выборе опции Подключить логирование.

    • Пароль пользователя RabbitMQ. Его можно задать вручную или сгенерировать автоматически.

  4. Задайте расширенные настройки, если необходимо. Для этого нажмите расширенные настройки и введите настройки и их значения.

    Важно

    Указанные настройки станут частью конфигурации сервиса, поэтому окажут влияние на его работу. Добавляйте только те настройки, которые вам действительно необходимы.

  5. Нажмите Создать.

    Примечание

    Процесс запуска сервиса обычно занимает от 5 до 15 минут.

Управление балансировщиками нагрузки#

Для сервиса RabbitMQ в отказоустойчивой конфигурации с несколькими узлами можно создать внутренний и/или внешний балансировщики нагрузки (подробнее о балансировщиках). Они автоматически распределяют поступающие запросы между узлами кластера.

Балансировщики нагрузки создаются автоматически, их параметры и связанные ресурсы нельзя изменять. Информацию о созданных балансировщиках, в частности их DNS-имена, можно найти на вкладке Балансировщики нагрузки на странице сервиса.

Внимание

Балансировщик нагрузки, который работает с PaaS-сервисом, можно удалить только на странице этого сервиса.

Важно

Для работы внешнего балансировщика нагрузки необходимо открыть доступ извне к портам HAProxy, который по умолчанию закрыт. Для этого в группу безопасности, которая была указана при создании сервиса, необходимо добавить разрешающее правило для порта tcp/5000.

Создать балансировщик нагрузки#

Балансировщик нагрузки для сервиса брокера сообщений можно создать, только когда сервис имеет статус Запущен. Для одного сервиса можно создать по одному внутреннему и внешнему балансировщику нагрузки.

Важно

Внутренний балансировщик нагрузки можно создать, только если в VPC включено распространение маршрутов.

  1. Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Брокеры сообщений.

  2. Найдите в таблице сервисов нужный и нажмите на идентификатор сервиса для перехода на его страницу.

  3. Откройте вкладку Балансировщики нагрузки и нажмите Создать.

  4. В открывшемся окне выберите, какой балансировщика вы хотите создать. Если ни один ещё не был создан, то можно сразу создать и внутренний, и внешний балансировщики.

  5. Нажмите Создать для подтверждения действия.

Удалить балансировщик нагрузки#

Связанный с сервисом балансировщик нагрузки можно удалить, только когда сервис имеет статус Запущен.

  1. Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Брокеры сообщений.

  2. Найдите в таблице сервисов нужный и нажмите на идентификатор сервиса для перехода на его страницу.

  3. Откройте вкладку Балансировщики нагрузки и нажмите Удалить.

  4. В открывшемся окне выберите, какой балансировщика вы хотите удалить. Если для сервиса были созданы два балансировщика нагрузки, то вы можете удалить их оба одновременно.

  5. Нажмите Удалить для подтверждения действия.

Настройка сервиса RabbitMQ#

Если вы не подключили мониторинг и/или логирование при создания сервиса брокера сообщений, либо хотите их отключить, то это можно сделать, когда сервис находится в состоянии Готов. Вы также можете изменить пароль и расширенные настройки.

Примечание

Для подключения мониторинга и логирования необходимо предварительно развернуть сервис мониторинга на базе Prometheus и сервис логирования на базе ELK.

Важно

Если какие-либо настройки не удастся изменить, то сервис будет возвращён к исходным.

Чтобы настроить параметры сервиса брокера сообщений:

  1. Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Брокеры сообщений.

  2. Найдите в таблице сервисов нужный и нажмите на идентификатор сервиса для перехода на его страницу.

  3. Откройте вкладку Параметры и нажмите Изменить.

  4. В открывшемся окне вы можете сгенерировать или задать новый пароль и настроить мониторинг и логирование (или отключить, если они уже включены).

  5. Чтобы изменить расширенные настройки, перейдите на следующий шаг, нажав Дополнительные параметры. Затем нажмите расширенные настройки и задайте новые настройки и их значения.

  6. Для сохранения параметров нажмите Изменить.

Обновление окружения#

Сервисы PaaS регулярно обновляются. Если вы хотите, чтобы уже установленный сервис RabbitMQ поддерживал новые возможности, то обновите его окружение на новую версию. Текущую версию окружения можно узнать на вкладке Информация на странице сервиса.

Примечание

Обновление окружения поддерживается для всех сервисов с версией окружения 3_6 и выше. Оно также доступно для некоторых ранее установленных сервисов с версией окружения 3_5. Возможность обновления можно проверить с помощью API-метода DescribeService: в ответе на запрос в списке SupportedFeatures должно присутствовать значение common:update_environment.

Важно

Если окружение не удастся обновить, то сервис будет возвращён в исходное состояние.

Чтобы обновить версию окружения:

  1. Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Брокеры сообщений.

  2. Найдите в таблице сервисов нужный и нажмите на идентификатор сервиса для перехода на его страницу.

  3. На вкладке Информация нажмите Обновить версию окружения.

  4. В открывшемся окне выберите из списка версию, на которую вы хотите обновить текущее окружение.

  5. Нажмите Обновить для смены версии.

Удаление сервиса RabbitMQ#

Удаление сервиса RabbitMQ предполагает удаление всех созданных вместе с ним экземпляров и дисков.

Вы можете удалить сервис одним из следующих способов.

  1. Перейдите в раздел PaaS Установленные сервисы.

  2. Откройте вкладку Брокеры сообщений.

  3. Найдите сервис в таблице и нажмите на иконку .

  4. Если вы хотите использовать в дальнейшем сетевые интерфейсы, например, чтобы пересоздать сервис в кластере с теми же сетевыми параметрами, то в открывшемся окне отключите опцию Удалить подсоединённые сетевые интерфейсы.

  5. Подтвердите действие.

  1. Перейдите в раздел PaaS Установленные сервисы.

  2. Откройте вкладку Брокеры сообщений.

  3. Найдите сервис в таблице и перейдите на страницу сервиса.

  4. На вкладке Информация нажмите Удалить.

  5. Если вы хотите использовать в дальнейшем сетевые интерфейсы, например, чтобы пересоздать сервис в кластере с теми же сетевыми параметрами, то в открывшемся окне отключите опцию Удалить подсоединённые сетевые интерфейсы.

  6. Подтвердите действие.