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 Планирование можно отменить.