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

Что такое DMS для RocketMQ?

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

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

DMS для RocketMQ обладает следующими характеристиками:

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

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

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


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

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

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

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

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

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

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

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

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

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

    Тип извлечения

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

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

    Извлечение по порядку

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

    Стандартный интервал составляет 1000 мс, то есть 1 секунда.

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

    Нормальное извлечение

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

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

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

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

    Номер повтора

    Интервал

    Номер повтора

    Интервал

    1

    10 секунд

    9

    7 минут

    2

    30 секунд

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

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

    Задержка

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

    Задержка

    1

    1 секунда

    10

    6 минут

    2

    5 секунд

    11

    7 минут

    3

    10 секунд

    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 ч

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