Инструкция по установке Брокер сообщений
1. Назначение документа
В настоящем документе приведено руководство системного администратора по установке и настройке системного ПО Брокер сообщений Q.Artemis (Q.Integration, Интеграционная платформа).
2. Общие положения
Функциональный блок Q.Integration, Интеграционная платформа (Брокер сообщений) (далее – Функциональный блок или Брокер сообщений) предназначен для безопасного и надежного обмена данными между приложениями.
Ключевыми свойствами функционального блока являются:
-
поддержка распространенных протоколов передачи сообщений (AMQP, OpenWire, MQTT, STOMP, HornetQ);
-
поддержка паттернов «точка-точка» и «публикация-подписка»;
-
поддержка JMS-транзакций и, следовательно, возможность группировки нескольких операций отправки или получения сообщений в одну атомарную операцию;
-
поддержка транзакций и гарантированной доставки;
-
декларативное управление правами доступа к объектам брокера.
Взаимодействующие системы могут отправлять подтверждения о получении сообщений, что гарантирует, что Брокер сообщений имеет информацию об успешной доставке. Если подтверждение не получено, программный продукт в соответствии с настройками может выполнять повторную отправку сообщения.
Если сообщение не может быть доставлено после определенного количества попыток, оно может быть перенаправлено в специальную очередь Dead Letter Queue.
При типе обмена сообщениями «точка-точка» сообщение отправляется в очередь. Затем сообщение сохраняется, чтобы обеспечить гарантию доставки, а через некоторое время система обмена сообщениями доставляет сообщение потребителю. Затем потребитель обрабатывает сообщение и после этого подтверждает его. Как только сообщение подтверждено, оно исчезает из очереди и становится недоступным для повторной доставки. Если система выйдет из строя до того, как сервер обмена сообщениями получит подтверждение от потребителя, то после восстановления сообщение будет доступно для повторной доставки потребителю.
При обмене сообщениями «точка-точка» в очереди может быть много потребителей, но конкретное сообщение может быть использовано только одним из них.
При обмене сообщениями «публикация-подписка» сообщения объекту на сервере, называемому «топик», могут отправлять несколько пользователей.
Один топик может включать много подписок. Каждая подписка получает копию каждого сообщения, отправленного в топик. Это является отличием от шаблона очереди сообщений, где каждое сообщение потребляется только одним потребителем.
Брокер сообщений дает возможность создавать группы серверов обмена сообщениями, называемые кластерами. Кластеры позволяют распределить нагрузку по отправке и приему сообщений на множество серверов. Брокер сообщений предоставляет гибко настраиваемую модель кластеризации, в которой сообщения могут интеллектуально балансировать между серверами в кластере в зависимости от количества потребителей на каждом узле и их готовности к обмену сообщениями. Брокер сообщений также имеет возможность автоматически перераспределять сообщения между узлами кластера.
3. Термины, сокращения, определения
| Термин/сокращение | Определение |
|---|---|
| MQ | Message Queue, Брокер сообщений |
| БД | База данных |
| Кластер | Группа серверов обмена сообщениями |
| Сообщение | Данные, передаваемые между отправителем и приложением-получателем |
| Очередь | Последовательность сообщений, ожидающих обработки в порядке очереди, начиная с первого |
4. Основные сущности Продукта
5.1 Адрес
Сообщения отправляются на адрес. Адресу присваивается уникальное имя, тип маршрутизации и ноль или более очередей.
5.2 Очередь
Сообщения потребляются из очереди. Очередь привязана к адресу. Ему присваивается уникальное имя и тип маршрутизации. К одному адресу может быть привязано ноль или более очередей. Когда сообщение отправляется по адресу, оно попадает в одну или несколько очередей в зависимости от настроенного типа маршрутизации.
Имя очереди должно быть глобально уникальным. Например, нельзя создавать очередь с именем q1 по адресу a1, а также очередь с именем q1 по адресу a2.
5.3 Тип маршрутизации
Тип маршрутизации определяет, как сообщения направляются с адреса в очереди, привязанные к этому адресу. Поддерживаются два типа маршрутизации: Anycast и Multicast.
| Если требуется отправка сообщения в… | Используемый тип маршрутизации |
|---|---|
| одну очередь по адресу | Anycast |
| во все очереди по адресу | Multicast |
6. Основные команды
Для успешного выполнения команды, необходимо запустить брокер сообщений. У пользователя должен быть доступ к утилите artemis из командной строки. Также необходимо убедиться в использовании правильных параметров команд в соответствии с конфигурацией брокера и требованиями приложения пользователя.
6.1 Создание инстанса брокера сообщений
Для создания инстанса необходимо использовать команду:
artemis create <INSTANCE_DIR> --user <USER_NAME> --password <USER_PASSWOED> --silent -
-require-login --http-host 0.0.0.0 --relax-jolokia
где <INSTANCE_DIR> – путь к каталогу инстанса, а <USER_NAME> и <USER_PASSWOED> –
имя и пароль пользователя соответственно.6.2 Запуск брокера сообщений
Необходимо открыть консоль командной строки, перейти в каталог <INSTANCE_DIR> и
выполнить команду:
artemis run6.3 Получение информации о текущей установке брокера сообщений
В консоли командной строки необходимо выполнить команду:
atremis versionКоманда выводит информацию о версии установленного брокера сообщений, пути установки и пути к текущему инстансу.
6.4 Вывод статистики по существующим очередям
В консоли командной строки необходимо выполнить команду:
artemis queue statКоманда выводит список существующих очередей с указанием их имен, адресов, количества подписчиков, сообщений, находящихся в очереди и т.д.
6.5 Создание очереди
В консоли командной строки необходимо выполнить команду:
artemis queue create --name <QueueName> --address <Address>Команда создает очередь с названием <QueueName> по адресу <Address>.
6.6 Удаление очереди
В консоли командной строки необходимо выполнить команду:
artemis queue delete --name <QueueName>Команда удаляет очередь с названием <QueueName>.
6.7 Отправка сообщения в очередь
В консоли командной строки необходимо выполнить команду:
artemis producer --destination <QueueName> --message <MessageContent>Команда направляет в очередь с названием <QueueName> сообщение с текстом <MessageContent>.
6.8 Получение всех сообщений из очереди
В консоли командной строки необходимо выполнить команду:
artemis consumer --destination <QueueName> --message-count 0Параметр --message-count 0 указывает, что нужно получить все доступные сообщения из очереди.
7. Состав поставки
Поставка представляет архив "QIntegration-QArtemis-2.33.0.zip"
Структура поставки
- Папка «documentation». Содержит документацию поставки.
- Папка «q-artemis-2.33.0». Содержит дистрибутив Q.Artemis, Брокер сообщений (Q.Integration, Интеграционная платформа).
8. Процедура установки
8.1 Требования для запуска приложения
Для работы функционального модуля требуется Java SE 8 или выше.
8.2 Структура каталогов приложения
8.2.1 Основные директории в дистрибутиве Q.Artemis
/bin: Содержит исполняемые файлы и скрипты для управления брокером. Это включает в себя скрипты для запуска, остановки, создания нового брокера, а также утилиты для администрирования.
/etc: Содержит основные конфигурационные файлы брокера. Здесь можно настроить различные параметры работы брокера, такие как конфигурация журналирования, соединений, безопасности и другие.
/lib: Содержит все библиотеки и зависимости, необходимые для работы брокера. Это включает в себя JAR-файлы и другие библиотеки.
/examples: В этой директории находятся примеры конфигураций и кода, которые демонстрируют различные функции и возможности Q.Artemis. Эти примеры полезны для обучения и быстрого старта.
/docs: Содержит документацию по использованию и конфигурации Q.Artemis. Это включает в себя руководства, справочники и другие полезные документы.
/web: Содержит файлы и конфигурации для управления веб-консолью, если она используется. Веб-консоль предоставляет графический интерфейс для управления и мониторинга брокера.
8.2.2 Основные директории в экземпляре брокера
Когда вы создаете новый экземпляр брокера, создается собственная структура папок для этого экземпляра. Основные папки включают:
/bin: Содержит скрипты и исполняемые файлы для управления конкретным экземпляром брокера.
/etc: Содержит конфигурационные файлы для конкретного экземпляра брокера. Здесь находятся настройки, специфичные для этого экземпляра.
/data: Эта папка используется для хранения данных сообщений, журналов, временных файлов и другой информации, связанной с активностью брокера.
/log: Содержит файлы журналов брокера, где записываются события, ошибки и другая информация, полезная для мониторинга и отладки.
/tmp: Временная папка для хранения временных файлов, которые создаются и используются брокером во время его работы.
8.3 Запуск, остановка, перезапуск приложения
8.3.1 Установка дистрибутива
- Скачайте архив с дистрибутивом Q.Artemis
- Извлеките содержимое архива в рабочую директорию.
- Создайте нового брокера a. Перейти в "q-artemis-2.33.0/bin/" b. Запустить командную строку c. Выполнить команду:
artemis create mybroker --user admin --password admin --role admin --require-login --http-host 0.0.0.0 --relax-jolokiaЗдесь mybroker — это имя вашего нового брокера, admin — пользователь и пароль для администрирования.
d. Дождаться выполнение команды:

8.3.2 Запуск
- Перейдите в директорию созданного брокера, выполнив команду
cd mybroker/bin- Запустите брокер выполнить команду:
artemis runВы также можете запустить брокер в фоновом режиме:
artemis-service start8.3.3 Перезапуск
- Остановите работающий брокер выполнив команду:
artemis-service stop- Перезапустите брокер, используя команду для запуска:
artemis-service start8.3.4 Удаление
- Остановите работающий брокер выполнив команду:
artemis-service stop- Перейдите на уровень выше:
cd ..- Удалите директорию брокера выполнив команду:
rm -rf mybroker8.3.5 Дополнительные шаги
- Настройка переменных окружения
Вы можете добавить путь к Q.Artemis в переменную окружения PATH для удобства использования:
export PATH=$PATH:/path/to/q-artemis-2.33.0/bin
2. Настройка конфигураций
Для изменения настроек брокера отредактируйте файл mybroker/etc/broker.xml и другие конфигурационные файлы в директории mybroker/etc.
8.4 Проверка корректности установки приложения
При запущенном брокере , находясь в папке mybroker/bin выполните следующие команды:
- Создайте очередь
artemis queue create --name=tmpQueue --address=tmpQueue --user=artemis --password=artemis --anycast=True --durable=True --purge-on-no-consumers=True --auto-create-address=TrueВ консоли должно появиться сообщение
Queue [name=tmpQueue, address=tmpQueue, routingType=ANYCAST, durable=true, purgeOnNoConsumers=true, autoCreateAddress=false, exclusive=false, lastValue=false, lastValueKey=null, nonDestructive=false, consumersBeforeDispatch=0, delayBeforeDispatch=-1, autoCreateAddress=false] created successfully.- Отправьте в созданную очередь сообщение
artemis producer --destination=tmqQueue --message=test --user=artemis --password=artemisПример результата в консоли
Producer ActiveMQQueue[tmqQueue], thread=0 Started to calculate elapsed time ...
Producer ActiveMQQueue[tmqQueue], thread=0 Produced: 1000 messages
Producer ActiveMQQueue[tmqQueue], thread=0 Elapsed time in second : 1 s
Producer ActiveMQQueue[tmqQueue], thread=0 Elapsed time in milli second : 1571 milli seconds- Проверьте статистику очередей
artemis queue stat --user=artemis --password=artemisПример результата в консоли
|NAME |ADDRESS |CONSUMER_COUNT|MESSAGE_COUNT|MESSAGES_ADDED|DELIVERING_COUNT|MESSAGES_ACKED|SCHEDULED_COUNT|ROUTING_TYPE|
|DLQ |DLQ |0 |0 |0 |0 |0 |0 |ANYCAST |
|ExpiryQueue |ExpiryQueue |0 |0 |0 |0 |0 |0 |ANYCAST |
|activemq.management.29...|activemq.management.29...|1 |1 |1 |1 |0 |0 |MULTICAST |
|activemq.management.41...|activemq.management.41...|1 |1 |1 |1 |0 |0 |MULTICAST |
|activemq.management.c9...|activemq.management.c9...|1 |0 |0 |0 |0 |0 |MULTICAST |
|tmqQueue |tmqQueue |0 |1000 |1000 |0 |0 |0 |ANYCAST |
4. Удалите созданную очередьartemis queue delete --name=tmqQueue --user=artemis --password=artemis
Результат в консолиQueue tmqQueue deleted successfully.