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

Что такое DMS for RocketMQ?

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

Сервис распределенных сообщений (DMS) for RocketMQ — это ориентированное на сообщения промежуточное ПО, обеспечивающее низкую задержку, высокую гибкость, высокую пропускную способность, динамическое масштабирование, простое управление и обширные функции обмена сообщениями.

DMS for RocketMQ имеет следующие функции:

  • Совместимость с клиентами RocketMQ с открытым исходным кодом.
  • Обширные функции обмена сообщениями, включая упорядоченную доставку сообщений, отложенные сообщения, плановые сообщения, повторную отправку сообщений, сообщения dead letter и транзакционные сообщения, которые удовлетворяют разнообразные потребности в сценариях электронной коммерции и финансов.
  • Функции мониторинга и анализа, включая трассировку сообщений, отслеживание сообщений, анализ трассировок, экспорт сообщений dead letter, мониторинг и оповещения, позволяющие вам отслеживать ваши сервисы и поддерживать их работу.

Архитектура продукта

Рисунок 1 Архитектура продукта (экземпляра v4.8.0)


Описание архитектуры:

  • Брокеры получают и сохраняют сообщения, отправленные продюсерами, либо пересылают сообщения потребителям. Брокер состоит из одного мастера и двух слейв‑узлов.
  • NameServers получают и сохраняют метаданные брокера.
  • Продюсеры получают метаданные от NameServers и отправляют сообщения брокерам.
  • Потребители получают метаданные от NameServers и затем вытягивают сообщения из брокеров.

Типы сообщений

DMS for RocketMQ поддерживает четыре типа сообщений.

  • Обычные сообщения: сообщения, не имеющие никаких особенностей отложенных сообщений, упорядоченных сообщений или транзакционных сообщений.
  • Отложенные/Запланированные сообщения: сообщения, доставляемые потребителям после определённого периода после отправки продюсерами в DMS for RocketMQ.
  • Упорядоченные сообщения: сообщения, извлекаемые в точном порядке их создания.
  • Транзакционное сообщение: сообщения, обеспечивающие окончательную согласованность, реализующие распределённую обработку транзакций, аналогичную X/Open XA.

Расширенные возможности

DMS for RocketMQ предоставляет четыре расширенных функции.

  • Фильтрация сообщений: Потребители могут помечать сообщения в подписанных темах, чтобы получать только необходимые сообщения.
  • Повторная отправка сообщений: DMS for RocketMQ повторно отправляет сообщения, которые не удалось потребить. Если потребление сообщений всё ещё не удаётся после достижения максимального количества повторов, сообщения отправляются в очередь dead letter.

    Таблица 1 описывает механизм повторов в DMS for RocketMQ.

    Таблица 1 Механизм повторной отправки сообщений

    Тип получения

    Интервал повторов

    Максимальное количество повторов

    Упорядоченное получение

    Интервал задаётся suspendTimeMillis параметр.

    Интервал по умолчанию — 1000 мс, то есть 1 с.

    Максимальное количество повторов задаётся setMaxReconsumeTimes метод у потребителя. Если этот параметр не установлен, будет неограниченное количество повторных попыток.

    Обычное извлечение

    Интервал меняется в зависимости от номера повторной попытки, как показано в Таблица 2.

    Устанавливается при создании группы потребителей.

    Диапазон значений: 1–16 раз

    Таблица 2 Интервалы между повторными попытками при обычных извлечениях

    Повтор №

    Интервал

    Повтор №

    Интервал

    1

    10s

    9

    7 мин

    2

    30s

    10

    8 мин

    3

    1 мин

    11

    9 мин

    4

    2 мин

    12

    10 мин

    5

    3 мин

    13

    20 мин

    6

    4 мин

    14

    30 мин

    7

    5 мин

    15

    1 ч

    8

    6 мин

    16

    2 ч

  • Отложенные сообщения: После того как они отправлены от производителей в DMS для RocketMQ, сообщения доставляются потребителям только после a фиксированный период. Производитель может указать один из 18 уровней задержки, перечисленных в Таблица 3.
    Таблица 3 Уровни задержки

    Уровень задержки

    Задержка

    Уровень задержки

    Задержка

    1

    1s

    10

    6 мин

    2

    5s

    11

    7 мин

    3

    10s

    12

    8 мин

    4

    30 сек

    13

    9 мин

    5

    1 мин

    14

    10 мин

    6

    2 мин

    15

    20 мин

    7

    3 мин

    16

    30 мин

    8

    4 мин

    17

    1 ч

    9

    5 мин

    18

    2 ч

  • Запланированные сообщения: После отправки от продюсеров в DMS for RocketMQ сообщения доставляются потребителям только после указанного момента времени. DMS for RocketMQ поддерживает планирование сообщений в в любое время. Для v4.8.0, её можно запланировать до года вперёд. Для v5.x, её можно запланировать до семи дней вперёд. Планирование можно отменить.