Skip to content

Resource nubes_rabbitmq · v2.0.0 · Service ID: 93 · Service Name: RabbitMQ

Manual · Create params · Modify params · Output params · Operations · Example

Сервис RabbitMQ (nubes_rabbitmq). См. Create params для списка параметров.

Справка (MAN)

Инструкция по развертыванию RabbitMQ через платформу


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

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

Доступные операции

  • create — Создание кластера
  • modify — Изменение параметров кластера
  • delete — Удаление кластера
  • suspend — Остановка кластера
  • resume — Запуск кластера

2. Параметры развертывания кластера

Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

  • Платформа для развертывания: Платформа для развертывания (среда, в которой будет развернут кластер). Пример: k8s-3.ext.nubes.ru.

  • Количество узлов в сети: Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности. Пример: 1 (single node) или 3 (кластер с репликацией)

  • Квота (megabyte) памяти пода: Квота памяти пода в мегабайтах. Пример: 2048

  • Квота (millicore) ядра пода: Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

  • Размер (gigabyte) диска для базы данных: Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: 50

  • Выделяет внешний IP для доступа к master: Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672. Пример: true или false

  • Имя ipSpace для публикации внешнего IP master: Если включен предыдущий параметр, то поле необходимо заполнить. Пример: internet-no-antiddos-v1


3. Модификация кластера

Операция modify позволяет изменить параметры существующего кластера RabbitMQ.

Изменяемые параметры: * Квота (megabyte) памяти пода — можно увеличить или уменьшить * Квота (millicore) ядра пода — можно увеличить или уменьшить * Размер (gigabyte) диска для базы данных — можно только увеличить (уменьшение не поддерживается) * Количество узлов в сети — можно только увеличить (уменьшение не поддерживается) * Выделяет внешний IP для доступа к master — можно включить или выключить * Имя ipSpace для публикации внешнего IP master — можно изменить при включенном внешнем IP

Ограничения: * Уменьшение размера диска не поддерживается * Уменьшение количества реплик не поддерживается


4. Выходные параметры

После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

clusterDomain Домен кластера Kubernetes, в котором развернут RabbitMQ. Пример: cluster.local

inernalConnect Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети. Содержит: * master — FQDN для подключения к кластеру. Пример: rabbitmqk8s.{namespace}.svc.{clusterDomain}

externalConnect Внешние эндпоинты для подключения к кластеру RabbitMQ извне. Содержит объекты с полями: * admin — доступ к веб-интерфейсу управления: * fqdn — полное доменное имя для веб-интерфейса. Пример: admin.{namespace}.{domain} * ip — IP-адрес * master — доступ к AMQP протоколу (если включен внешний IP): * fqdn — полное доменное имя для AMQP. Пример: write.{namespace}.{domain} * ip — IP-адрес

monitoring Информация о дашбордах мониторинга: * allDashboards — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

  • 5672 — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
  • 15672 — веб-интерфейс управления (доступен через Ingress по HTTPS)

Учётные данные Данные для подключения к RabbitMQ доступны в разделе "Учётные данные": * adminUser — имя пользователя администратора * adminPass — пароль администратора


5. Примеры подключения через консоль (rabbitmqadmin)

Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита rabbitmqadmin. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>

Где: * <adminUser> и <adminPass> — учётные данные из раздела "Учётные данные" * <host> — адрес для подключения: * Для внешнего подключения: externalConnect.admin.fqdn или externalConnect.master.fqdn

Создание очереди:

rabbitmqadmin \
  -H "$RABBIT_HOST" -P 15672 \
  -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
  declare queue name=healthcheck durable=false

Листинг очередей:

rabbitmqadmin \
  -H "$RABBIT_HOST" -P 15672 \
  -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
  list queues

Отправка сообщения:

rabbitmqadmin \
  -H "$RABBIT_HOST" -P 15672 \
  -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
  publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"

Чтение сообщения:

rabbitmqadmin \
  -H "$RABBIT_HOST" -P 15672 \
  -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
  get queue=healthcheck ackmode=ack_requeue_false

6. Дополнительная информация

Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре externalConnect.admin.fqdn через HTTPS.

Для внутреннего подключения используйте адрес из inernalConnect.master на порту 5672.