Облачная платформаAdvanced

Начало работы с RabbitMQ для производства и потребления сообщений

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В этом разделе приведён пример, который поможет вам начать работу с DMS for RabbitMQ. Пример создаёт RabbitMQ instance с отключённым SSL и получает к нему доступ через частную сеть на клиенте внутри VPC. В результате сообщения могут быть произведены и потреблены.

Рисунок 1Процедура использования DMS for RabbitMQ


  1. Шаг 1: Подготовка

    RabbitMQ instance работает в Virtual Private Cloud (VPC). Перед созданием RabbitMQ instance убедитесь, что VPC доступна.

  2. Шаг 2: Создание RabbitMQ Instance

    При создании RabbitMQ instance вы можете выбрать характеристики и количество.

  3. Шаг 3: Доступ к Instance для производства и потребления сообщений

    Клиент подключается к instance с отключённым SSL, используя демонстрацию, предоставленную RabbitMQ.

Шаг 1: Подготовка

  1. Предоставьте RabbitMQ instance разрешения.

    Для обеспечения детального управления вашими облачными ресурсами создайте группы пользователей и пользователей Identity and Access Management (IAM) и предоставьте указанным пользователям соответствующие разрешения. Для получения дополнительной информации см. Creating an IAM User and Granting DMS for RabbitMQ Permissions.

  2. Создайте VPC и подсеть.

    Перед созданием RabbitMQ instance убедитесь, что VPC и подсеть доступны. Подробную информацию о том, как создать VPC и подсеть, см. Creating a VPC with a Subnet.

    VPC must быть создана в same регионе, где находится RabbitMQ instance.

  3. Создайте группу безопасности и добавьте правила группы безопасности.

    Прежде чем создавать инстанс RabbitMQ, убедитесь, что доступна группа безопасности. Для получения подробной информации о том, как создать группу безопасности, см. Creating a Security Group.

    Группа безопасности необходимо должна быть создана в том же регионе, что и инстанс RabbitMQ.

    Чтобы подключиться к инстансам RabbitMQ, добавьте правила группы безопасности, описанные в Table 1. Другие правила могут быть добавлены в соответствии с требованиями сайта.

    Table 1 Правила группы безопасности

    Направление

    Протокол

    Порт

    Исходный адрес

    Описание

    Входящий

    TCP

    5672

    0.0.0.0/0

    Подключение к инстансу RabbitMQ (SSL отключён)

    Note

    После создания группы безопасности в ней присутствует правило входящего трафика по умолчанию, позволяющее взаимодействовать ECS внутри группы безопасности, и правило исходящего трафика по умолчанию, позволяющее весь исходящий трафик. Если вы подключаетесь к вашему инстансу RabbitMQ через частную сеть внутри VPC, добавлять правила, описанные в Table 1, не требуется.

  4. Создайте клиент для отправки и получения сообщений.

    В этом разделе используется Linux Elastic Cloud Server (ECS) в качестве клиента. Перед созданием экземпляра RabbitMQ создайте ECS с elastic IPs (EIPs), установите JDK и настройте переменные среды.

    1. Войдите в консоль, нажмите в левом верхнем углу, нажмите Elastic Cloud Server в разделе Computing, затем создайте ECS.

      Для получения подробной информации о том, как создать ECS, см. Creating an ECS. Если у вас уже есть доступный ECS, пропустите этот шаг.

    2. Войдите в ECS как пользователь root.
    3. Установите Java JDK и настройте переменные среды JAVA_HOME и PATH.
      1. Скачайте JDK.
        Note

        Используйте Oracle JDK вместо JDK по умолчанию в ECS (например, OpenJDK), поскольку JDK по умолчанию в ECS может быть неподходящим. Получите Oracle JDK 1.8.111 or later с официального сайта Oracle.

      2. Распакуйте JDK.
        tar -zxvf jdk-8u321-linux-x64.tar.gz

        Замените jdk-8u321-linux-x64.tar.gz на вашу версию JDK.

      3. Откройте файл .bash_profile.
        vim ~/.bash_profile
      4. Добавьте следующее содержимое:
        export JAVA_HOME=/root/jdk1.8.0_321
        export PATH=$JAVA_HOME/bin:$PATH

        Замените /root/jdk1.8.0_321 на путь, где вы установили JDK.

      5. Нажмите Esc. Введите следующую строку и нажмите Enter. Сохраните файл .bash_profile и выйдите.
        :wq
      6. Выполните следующую команду, чтобы изменения вступили в силу:
        source .bash_profile
      7. Проверьте, установлен ли JDK.
        java -version

        Если возвращено следующее сообщение, JDK установлен.

        java version "1.8.0_321"

Шаг 2: Создание RabbitMQ Instance

  1. Войдите в консоль RabbitMQ и нажмите Buy RabbitMQ Instance в правом верхнем углу.
  2. Укажите базовые параметры инстанса. Для получения подробной информации см. Table 2.

    Table 2 Базовые параметры инстанса

    Параметр

    Описание

    Режим биллинга

    Выберите Pay-per-use, который является постоплатным режимом. Вы можете оплатить после использования сервиса, и вам будет выставлен счет за продолжительность использования. Плата рассчитывается в секундах и начисляется почасово.

    Регион

    DMS for RabbitMQ в разных регионах не могут взаимодействовать друг с другом через интранет. Выберите ближайшее расположение для низкой задержки и быстрого доступа.

    Выберите RU-Moscow.

    Проект

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

    Выберите RU-Moscow (по умолчанию).

    AZ

    AZ — это физический регион, в котором ресурсы используют независимое электропитание и сети. AZ физически изолированы, но соединены через внутреннюю сеть.

    Выберите AZ1.

    Instance Name

    Вы можете задать имя, соответствующее правилам: 4–64 символа; начинается с буквы; может содержать только буквы, цифры, дефисы (-) и подчёркивания (_).

    Введите "rabbitmq-test".

    Enterprise Project

    Этот параметр предназначен для enterprise‑пользователей. Enterprise Project управляет ресурсами проекта в группах. Enterprise projects логически изолированы.

    Выберите default.

    Version

    Версия RabbitMQ.

    Выберите 3.8.35.

    Architecture

    Выберите Single-node, что указывает на развертывание брокера RabbitMQ.

    Broker Flavor

    Выберите требуемый флейвор брокера.

    Выберите rabbitmq.2u4g.single.

    Brokers

    Фиксировано, а значение по умолчанию — 1.

    Объём хранения на брокер

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

    Общий объём хранения = Объём хранения на брокер × Количество брокеров. Тип диска нельзя изменить после создания instance.

    Выберите Ultra-high I/O и введите 100.

  3. Настройте сеть instance. Подробности см. в Table 3.

    Table 3 Настройка сети instance

    Parameter

    Description

    VPC

    VPC и подсеть нельзя изменить после создания instance.

    Выберите VPC и подсеть, подготовленные в 2.

    Security Group

    Выберите security group, подготовленную в 3.

  4. Установите режим доступа instance. Для получения подробной информации см. Table 4.

    Table 4 Настройка режима доступа instance

    Parameter

    Description

    SSL

    Пропустить.

    Username

    Введите имя пользователя, используемое для доступа к instance.

    Имя пользователя должно содержать от 4 до 64 символов, начинаться с буквы и включать только буквы, цифры, дефисы (-) и подчёркивания (_).

    Введите "test".

    Password

    Введите пароль, используемый для доступа к instance.

    Пароль должен соответствовать следующим требованиям:

    • Содержит от 8 до 32 символов.
    • Содержит как минимум три типа следующих символов: заглавные буквы, строчные буквы, цифры и специальные символы `~!@#$%^&*()-_=+\|[{}];:'",<.>? и пробелы, и не может начинаться с дефиса (-).
    • Не может быть именем пользователя, написанным вперёд или назад.

  5. Пропустить Advanced Settings.
  6. Нажмите Buy.
  7. Подтвердите информацию об instance и затем отправьте запрос.
  8. Вернитесь к списку instance и проверьте, создан ли instance.

    Создание instance занимает от 3 до 15 минут. В течение этого периода статус instance — Creating.

    • Если instance успешно создан, его статус меняется на Running.
    • If the instance is in the Creation failed state, delete it and try purchasing another one. If the instance purchase fails again, contact customer service.

  9. После создания instance нажмите его имя, чтобы перейти на страницу instance details page.
  10. В области Connection наведите курсор на доменное имя соединения, чтобы просмотреть и записать IP-адрес.

    Рисунок 2 Connection address


Шаг 3: Доступ к instance для отправки и получения сообщений

  1. Перейдите в каталог root на ECS и download пример кода проекта RabbitMQ-Tutorial.zip.

    wget https://dms-demo.obs.ru-moscow-1.hc.sbercloud.ru/RabbitMQ-Tutorial.zip
    Note

    /root является путем для хранения кода примера проекта. При необходимости измените его на фактический путь.

  2. Выполните следующую команду, чтобы распаковать RabbitMQ-Tutorial.zip:

    unzip RabbitMQ-Tutorial.zip

  3. Выполните следующую команду, чтобы перейти в каталог RabbitMQ-Tutorial, который содержит предварительно скомпилированный JAR‑файл:

    cd RabbitMQ-Tutorial

  4. Отправляйте сообщения, используя пример проекта.

    java -cp .:rabbitmq-tutorial.jar Send ${host} ${port} ${user} ${password}

    Описание:

    • host: адрес подключения, полученный при instance creation.
    • port: порт RabbitMQ instance. Введите 5672.
    • user: имя пользователя, заданное при instance creation.
    • password: пароль, заданный при instance creation.

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

    [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.xx.40 5672 test Zxxxxxxs
    [x] Sent 'Hello World!'
    [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.xx.40 5672 test Zxxxxxxs
    [x] Sent 'Hello World!'

  5. Потребляйте сообщения, используя пример проекта.

    java -cp .:rabbitmq-tutorial.jar Recv ${host} ${port} ${user} ${password}

    Описание:

    • host: адрес подключения, полученный при instance creation.
    • port: порт RabbitMQ instance. Введите 5672.
    • user: имя пользователя, заданное при instance creation.
    • password: password set in instance creation.

    Пример потребления сообщения:

    [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Recv 192.168.xx.40 5672 test Zxxxxxxs
    [*] Waiting for messages. To exit press CTRL+C
    [x] Received 'Hello World!'
    [x] Received 'Hello World!'

    Нажмите Ctrl+C, чтобы отменить.