Руководство по использованию консоли управления DDMQ
Консоль управления DDMQ (далее — Console) представляет собой единую платформу для работы с DDMQ. С помощью Console пользователи могут управлять производством и потреблением сообщений, а также создавать и поддерживать такие ресурсы, как topic, group, subscription.
Console позволяет настраивать ограничение на производство и потребление сообщений, способы отправки сообщений (HTTP или SDK или прямое сохранение в стороннем хранилище), Groovy-скрипты, остановку и запуск потребления, просмотр хода потребления, сброс хода потребления и выборку сообщений.
Производство сообщений
Перед тем как начать производить сообщения, производителю необходимо создать ресурс topic (в противном случае он не сможет использовать SDK для производства сообщений и получит ошибку «topic not in white list»).
Основные параметры создания topic:
- название topic должно быть уникальным;
- delayTopic — это флаг, который определяет, является ли topic отложенным. Отложенные topic должны быть помечены как true. Отложенные и мгновенные topic нельзя использовать совместно;
- Rate Limit — это значение ограничения на производство сообщений. Если предел превышен, запись в topic будет отклонена.
Потребление сообщений
Прежде чем начать потреблять сообщения, потребителю необходимо создать группу потребления и подписку, после чего можно запускать потребление. При использовании HTTP-отправки и прямого сохранения в стороннее хранилище сообщения будут отправляться получателю сразу после запуска потребления через Console. При использовании SDK потребитель должен использовать SDK для получения сообщений.
Шаги для создания группы потребления:
- Создайте группу потребления в Console.
- Добавьте подписки.
После создания группы можно добавлять подписки. Основные параметры подписки:
- Group — имя группы потребления, которое должно быть уникальным (необходимо предварительно создать);
- Topic — topic группы потребления;
- Consume maxTps — максимальное количество сообщений в секунду, которые будут отправлены потребителю. Если скорость производства сообщений превышает скорость потребления, сообщения будут накапливаться в брокере, что приведёт к увеличению задержки в потреблении сообщений;
- Receive Pressure Traffic — флаг, указывающий, будет ли DDMQ фильтровать сообщения с тегом «давление измерения». Этот тег устанавливается производителем в свойствах сообщения (см. пример использования SDK);
- API Level — может быть High Level или Low Level. Все основные функции DDMQ предоставляются на уровне High Level. Уровень Low Level рекомендуется использовать в сценариях с высокими требованиями к реальному времени и необходимостью контролировать смещение отправки. Обычно используется во Flink и других системах реального времени;
- consumeTimeout — время ожидания для HTTP-запросов и время ожидания потребления сообщений при использовании SDK. После истечения времени ожидания сообщение можно будет потребить повторно;
- Error Retry Times — количество повторных попыток в случае ошибки. Для HTTP-запроса это количество повторных попыток при получении статуса, отличного от 2xx. Для SDK это максимальное количество попыток при тайм-ауте ответа (включая сетевые ошибки). Значение -1 означает бесконечное количество попыток. Интервал между попытками фиксирован и составляет (512 мс, 1 с, 2 с, 4 с, 8 с,...,128 с, 128 с...);
- Retry Interval — интервал между нормальными повторными попытками. Количество повторных попыток определяется потребителем. Последняя цифра указывает на бесконечное повторение попыток. Например: 150;300;600 означает, что при возникновении неизвестной ошибки производителя или при возврате false будет предпринято три попытки с интервалами 150, 300 и 600 миллисекунд соответственно;
- Sequential Consume — конфигурация последовательного потребления. В сценариях без последовательного потребления этот параметр можно игнорировать. Возможные значения: QID (упорядоченное потребление по qid), KEY (упорядоченное потребление по ключу сообщения, заданному производителем), JsonPath (упорядоченное потребление по значению поля JSON, заданного JsonPath, при условии, что сообщение имеет формат JSON). Подробнее см. здесь;
- Consume Type — способ потребления: HTTP-запрос, SDK или прямое сохранение в стороннее хранилище (например, HBase, HDFS, Redis);
- URLs — список URL-адресов для отправки сообщений через HTTP. Несколько URL разделяются пробелами. Каждый раз выбирается случайный URL для отправки (обратите внимание, что URL должен начинаться с «http://»);
- GroovyScript — настройка Groovy-скрипта. Перед отправкой сообщения будет выполнен указанный Groovy-скрипт для предварительной обработки и фильтрации сообщений. Groovy-скрипты поддерживают фильтрацию сообщений и преобразование тела сообщения;
- Transit — предварительная обработка тела сообщения. Перед отправкой сообщения тело сообщения будет преобразовано в соответствии с указанным k-v. Transit — это набор значений k-v, где k — это путь JSONPath преобразованного поля, а v — путь JSONPath исходного поля.
Чтобы запустить потребление, выполните следующие шаги:
- Создайте группу потребления.
- Добавьте подписку.
- Запустите потребление.
Дополнительные функции:
- Выборка сообщений — получение последних данных, записанных в topic.
- Просмотр хода потребления — проверка хода потребления сообщений по группам.
- Сброс хода потребления — возможность перезапустить потребление старых данных. Перед сбросом хода потребления необходимо остановить подписку на потребление.
Примеры использования:
- HTTP-запросы — отправка сообщений через HTTP может осуществляться двумя способами: Post Body:params=<msg> и Post Body:сообщение открывается на первом уровне. Поддерживаются методы GET и POST. Можно указать несколько URL-адресов для отправки, и при отправке будет выбран случайный адрес. Опция QueryParams позволяет добавить поля из тела сообщения в качестве параметров запроса в URL.
- Использование Groovy-сценариев — Groovy-скрипты используются для фильтрации и преобразования сообщений. Фильтрация сообщений осуществляется путём возврата true или false. Только сообщения, возвращающие true, будут переданы следующему действию. Другие сообщения будут отфильтрованы и не будут возвращены клиенту. Во время выполнения скрипта, если возвращается любой объект, отличный от true, или выбрасывается исключение, сообщение будет отфильтровано. Преобразование сообщений выполняется путём изменения содержимого сообщения через привязку объектов в среде выполнения Groovy.
- Преобразование тела сообщения — если требуется преобразование тела сообщения, необходимо добавить дополнительное действие Transit и указать соответствующие параметры.
Опубликовать ( 0 )