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

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

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

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

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

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

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

Figure 1 Архитектура продукта (v4.8.0 instance)


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

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

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

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

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

Расширенные функции

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

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

    Table 1 описывает механизм повторных попыток в DMS for RocketMQ.

    Table 1 Механизм повторных попыток

    Retrieval Type

    Retry Interval

    Maximum Retries

    Ordered retrieval

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

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

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

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

    Интервал зависит от номера попытки, как показано в Table 2.

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

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

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

    Номер попытки

    Интервал

    Номер попытки

    Интервал

    1

    10s

    9

    7 min

    2

    30s

    10

    8 min

    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 сообщения доставляются потребителям только после фиксированного периода. Производитель может указать восемнадцать уровней задержки. Table 3 перечисляет время на каждом уровне.
    Table 3 Уровни задержки

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

    Delay

    Delay Level

    Delay

    1

    1s

    10

    6 min

    2

    5s

    11

    7 min

    3

    10s

    12

    8 min

    4

    30s

    13

    9 min

    5

    1 min

    14

    10 min

    6

    2 min

    15

    20 min

    7

    3 мин

    16

    30 мин

    8

    4 мин

    17

    1 ч

    9

    5 мин

    18

    2 ч

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