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

Начало работы с RocketMQ для отправки и получения сообщений

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

В этом документе рассматривается пример создания экземпляра RocketMQ с включённым SSL и доступа к нему с клиента в той же VPC, что и экземпляр, через частную сеть для отправки и получения сообщений, чтобы быстро начать работу с Distributed Message Service (DMS) для RocketMQ.

Процедура

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


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

    Экземпляр RocketMQ работает в VPC. Перед созданием экземпляра RocketMQ убедитесь, что VPC доступна.

  2. Шаг 2: Создать экземпляр RocketMQ

    Включите SSL, отключите ACL и настройте созданные VPC, подсеть и группу безопасности.

  3. Шаг 3: Создать топик

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

  4. Шаг 4: Подключиться к экземпляру RocketMQ для отправки и получения сообщений

    На клиенте подключитесь к экземпляру и используйте команды для отправки и получения сообщений.

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

  1. Предоставьте разрешения экземпляру RocketMQ.

    Требуется разрешение администратора RocketMQ DMS FullAccess. Подробности см. Creating an IAM User and Granting DMS for RocketMQ Permissions.

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

    Caution

    VPC должен быть создан в том же регионе, что и экземпляр RocketMQ.

    Экземпляр RocketMQ работает в Virtual Private Cloud (VPC). Прежде чем создавать экземпляр, убедитесь, что VPC доступен. Подробную информацию о том, как создать VPC и подсеть, см. "Creating a VPC" в Virtual Private Cloud User Guide.

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

    См. "Creating a Security Group" в Virtual Private Cloud User Guide.

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

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

    Направление

    Протокол

    Порт

    Источник

    Описание

    Входящий

    TCP

    8100

    IP-адрес или диапазон IP-адресов клиента RocketMQ

    Порт используется для доступа к узлам метаданных через частную сеть с использованием TCP.

    Inbound

    TCP

    10100–10199

    Порт используется для доступа к узлам сервиса с использованием TCP.

    Note

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

  4. Создайте elastic cloud server (ECS) и настройте переменные среды.

    Ниже приведён пример с Linux ECS. Для получения дополнительной информации о том, как установить JDK и настроить переменные среды для Windows ECS, выполните поиск в Интернете.

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

      Подробности см. в Creating an ECS. Если у вас уже есть доступный ECS, пропустите этот шаг.

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

        Используйте Oracle JDK вместо JDK по умолчанию в ECS (например, OpenJDK), так как он может не подходить для примера проекта. Получите Oracle JDK 1.8.111 или более новую версию с Oracle's official website.

      2. Выполните следующую команду для распаковки пакета JDK.
        tar -zxvf jdk-8u321-linux-x64.tar.gz

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

      3. Выполните следующую команду для редактирования файла переменных окружения .bash_profile:
        vim ~/.bash_profile
      4. Нажмите i и добавьте следующее содержимое.
        export JAVA_HOME=/opt/java/jdk1.8.0_321
        export PATH=$JAVA_HOME/bin:$PATH

        Измените /opt/java/jdk1.8.0_321 на путь, где установлен JDK.

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

      Если отображается следующая информация, JDK установлен успешно:

      java version "1.8.0_321"

    5. Выполните следующую команду для загрузки примерного программного пакета rocketmq-tutorial.

      Перед загрузкой примерного программного пакета убедитесь, что клиентский сервер может получить доступ к Интернету.

      wget https://dms-demo.obs.ru-moscow-1.hc.sbercloud.ru/rocketmq-tutorial.zip
    6. Выполните следующую команду для распаковки rocketmq-tutorial.
      unzip rocketmq-tutorial.zip

Шаг 2: Создать RocketMQ Instance

Перед использованием RocketMQ для производства и потребления сообщений создайте RocketMQ instance. Ресурс VM в instance хранит темы.

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

    Table 2 Настройка информации об instance

    Parameter

    Description

    Billing Mode

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

    Region

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

    Select RU-Moscow.

    Project

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

    Select RU-Moscow (default).

    AZ

    Выберите одну AZ или не менее трёх AZ.

    Instance Name

    Введите имя инстанса, например, rocketmq-test.

    Enterprise Project

    Enterprise проект управляет ресурсами проекта в группах. Enterprise проекты логически изолированы. Выберите "default". Этот параметр предназначен для enterprise пользователей.

    Version

    Выберите версию инстанса. Выберите 4.8.0.

    Фиксируется после создания инстанса RocketMQ. Используйте ту же версию, что и ваш клиент.

    Architecture

    Выберите архитектуру инстанса. Выберите Cluster здесь.

    Broker Flavor

    Выберите Флейвор инстанса. Выберите rocketmq.4u8g.cluster здесь.

    Brokers

    Укажите количество брокеров инстанса. Введите 1 здесь.

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

    Укажите тип диска и объём хранения на брокер для хранения данных RocketMQ. Выберите Ultra-high I/O и введите 300. Общий объём хранения инстанса = Объём хранения на брокер × Количество брокеров

    VPC

    Выберите VPC и подсеть. Здесь выберите те, которые созданы в Step 1: Preparations.

    Security Group

    Выберите группу безопасности. Здесь выберите ту, которая была создана в Step 1: Preparations.

    SSL

    Доступ к шифртексту с высокой безопасностью, но более низкой производительностью. Выберите SSL.

    ACL

    Включение ACL позволяет управлять правами на производство и потребление сообщений. Не включайте его здесь.

    More Settings

    Public Access

    Для включения public access требуются EIPs. Не включайте его здесь.

    Tags

    Идентификаторы инстанса RocketMQ. Пропустите их здесь.

    Description

    Дополнительная информация об инстансе. Пропустите её.

  3. Нажмите Buy.
  4. Подтвердите информацию об инстансе и отправьте запрос.
  5. Вернитесь к списку инстансов и проверьте, был ли создан инстанс RocketMQ.

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

    • Если инстанс создан успешно, его статус меняется на Running.
    • Если создание инстанса завершилось неудачей, просмотрите его в области Instance Creation Failures и удалите. Затем создайте новый. Если создание инстанса снова завершится неудачей, обратитесь в службу поддержки.

  6. После создания инстанса нажмите его имя, чтобы перейти на страницу instance overview page.
  7. Запишите адреса подключения инстанса из области Connection для последующего использования.

    Адрес подключения инстанса RocketMQ по умолчанию отображает доменное имя. Наведите курсор на доменное имя и запишите IP‑адрес, отображаемый во всплывающем окне.

Шаг 3: Create a Topic

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

  1. Click инстанс RocketMQ, чтобы перейти на страницу instance overview page.
  2. В панели навигации выберите Instance > Topics.
  3. Нажмите Create Topic.
  4. Настройте имя темы и другие параметры, ссылаясь на Table 3.

    Table 3 Параметры темы

    Параметр

    Описание

    Topic Name

    Введите имя темы. Введите Topic01 здесь.

    Permission

    Разрешения темы. Выберите Publish/Subscribe здесь. Производители могут публиковать сообщения в эту тему, а потребители — получать сообщения из этой темы.

    Brokers

    Связанные брокеры. Выберите broker-0 здесь и введите 3 очередей.

    Description

    Дополнительная информация о теме. Пропустите её.

  5. Нажмите OK.

Шаг 4: Подключитесь к экземпляру RocketMQ для отправки и получения сообщений

  1. Перейдите в каталог rocketmq-tutorial/bin на ECS.

    cd rocketmq-tutorial/bin

  2. Отправьте обычные сообщения с помощью следующих команд.

    Ниже приведён пример команды:

    JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 -p "hello rocketmq"
    • 10.xxx.xxx.89:8100;10.xxx.xxx.144:8100: адрес подключения экземпляра RocketMQ, то есть адрес подключения в 7.
    • Topic01: имя темы, созданной в 4 для экземпляра RocketMQ.
    • привет rocketmq: содержимое произведённого сообщения, может быть настроено.

  3. Потребляйте обычные сообщения с помощью следующих команд.

    Ниже приведён пример команды:

    JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01

    Содержимое BODY — это содержимое потребляемого сообщения.

    Чтобы остановить потребление сообщений, нажмите Ctrl+C для выхода.

Сопутствующая информация

  • Узнайте больше о RocketMQ Concepts.
  • При создании инстанса RocketMQ SSL можно отключить, если шифрование не требуется при доступе между клиентом‑потребителем и клиентом‑производителем. В этом случае для доступа к инстансу RocketMQ см. Accessing RocketMQ on a Client (Without SSL).
  • Если требуется несколько пользователей и предоставление им разных прав доступа к темам и группам потребителей, включите ACL и настройте пользователей ACL, чтобы права были изолированы между пользователями. Подробности см. в Enabling RocketMQ ACL и Configuring RocketMQ ACL Users.
  • Чтобы включить публичный доступ к инстансам RocketMQ, см. Configuring Public Access.