TQE Documentation portal logo
Помощь
Обновлена 9 ноября 2026 г. в 13:01

Быстрый запуск очереди сообщений

Данный раздел предназначен для ознакомления с продуктом TQE(MQ).

В разделе приведены варианты быстрой установки и запуска приложения – локально и c помощью Docker. Информация об установке TQE(MQ) для промышленного использования приведена в Руководстве по установке.

Далее описываются шаги по настройке модуля API (gRPC-сервера) и параметров подключения к очереди. После этого проверяется корректность установки и работоспособность приложения.

Системные требования

TQE(MQ) поддерживает установку на следующие операционные системы (ОС):

  • RED OS 7.3.
  • Astra Linux.

Также возможна установка на другие ОС – ALT Linux, AlmaLinux, Ubuntu, CentOS – но полноценная работоспособность не гарантируется.

Для работы приложения необходима библиотека glibc версии 2.17-260.el7_6.6 и выше. Для проверки текущей установленной версии glibc и её обновления выполните:

$ rpm -q glibc
$ yum update glibc

Установка экземпляра

  1. Распакуйте архив с дистрибутивом TQE(MQ):
$ tar -xzf <имя_архива>.tar.gz
  1. Перейдите в каталог с распакованным дистрибутивом:
$ cd message-queue-ee

Запуск ядра

  1. Для запуска ядра TQE(MQ) выполните команду:
$ tt start

Ответ должен иметь вид:

• Starting an instance [message-queue-ee:app]...

Выполните проверку успешности запуска приложения:

$ tt status INSTANCE              STATUS   PID    MODE message-queue-ee:app  RUNNING  10841  RO
  1. Далее необходимо настроить конфигурацию хранилища данных для очереди сообщений.

    В данном случае используются преднастроенные файлы конфигурации instances.yml и config.yml. Они поставляются в дистрибутиве и после распаковки находятся в каталоге верхнего уровня message-queue-ee/. В них определяется топология кластера – какие узлы какую роль выполняют, а также задается группировка узлов по наборам реплик для резервирования данных. Также на этом шаге выполняется запуск базы данных в кластере.

$ tt replicaset vshard bootstrap .

Ответ должен иметь вид:

• Discovery application...Orchestrator:      centralized configReplicasets state: bootstrapped• app  Failover: off  Master:   single    • app 127.0.0.1:3301 rw   • Bootstrapping vshard   • Done.

Теперь узел с приложением должен перейти в режим работы RW:

$ tt status INSTANCE              STATUS   PID    MODE message-queue-ee:app  RUNNING  10841  RW

Запуск приложения в Docker

Помимо варианта локального запуска, приведенного выше, TQE(MQ) можно запустить в Docker. Этот способ позволяет запустить несколько экземпляров TQE(MQ) в кластерной конфигурации:

  1. Загрузите docker-образ командой (добавьте в реестр):
$ docker load < docker-message-queue-ee-vX.X.X.tar.gz
  1. Внесите изменения в файл настроек compose.yaml из основного пакета поставки, например укажите свои файлы с настройками TQE:
services:  core:    image: tarantool/message-queue-ee:latest    pull_policy: if_not_present    platform: linux/amd64    command: ["tarantool", "--name", "core", "--config", "config.yml"]    # Для указания пользовательских настроек создайте    # файлы настроек, укажите их и раскомментируйте раздел `volumes`.    # volumes:    #  - "./config.yml:/message-queue-ee/config.yml"    #  - "./instances.yml:/message-queue-ee/instances.yml"    environment:      AUTO_BOOTSTRAP: "true"    ports:      - "3301:3301"      - "8081:8081"    extra_hosts:      - "host.docker.internal:host-gateway"
  1. После внесения изменений добавьте вручную тег latest для того, чтобы изменения применились при установке:
$ docker tag tarantool/message-queue-ee:vX.X.X tarantool/message-queue-ee:latest
  1. Запустите TQE:
$ docker compose up -d

Настройка конфигурации после установки

  1. Определение параметров модуля API (gRPC-сервера):
$ cat > config.service.yml <<EOFapp_name: MESSAGE_QUEUE_EE_APIapp_version: testcore_host: 0.0.0.0core_port: 18184grpc_host: 0.0.0.0grpc_port: 18182producer:  enabled: true  tarantool:    user: tqe_producer_user    pass: pass    queues:      queue:        connections:          routers:            - "localhost:3301"consumer:  enabled: true  polling_timeout: 500ms  tarantool:    user: tqe_consumer_user    pass: pass    queues:      queue:        connections:          storage-1:            - "localhost:3301"EOF

Отсутствие ошибок в терминале свидетельствует о правильной настройке модуля API (gRPC-сервера).

  1. Запуск модуля API (gRPC-сервера):
$ bin/message-queue-ee -d -config config.service.yml

Проверка установки приложения

Использование скриптов проверки работоспособности

В каталоге message-queue-ee/scripts расположены скрипты, с помощью которых можно проверить работоспособность приложения.

Для работы скриптов требуется установить утилиту grpcurl.

  1. Выполните команду:
$ ./scripts/test.sh localhost:18182Test passed.

Сообщение Test passed. свидетельствует о корректной установке и работе дистрибутива.

  1. При наличии ошибок в установке или работе приложения выполнение скрипта test.sh выдаст подобное сообщение:
$ ./scripts/test.sh localhost:18182Test failed: message id expected "1", got "2".

Оно информирует о возникновении проблем и необходимости убедиться в корректности настроек на этапе конфигурации приложения.

Проверка публикации в очередь сообщений

  1. Для проверки публикации в очередь сообщений выполните команду:
$ grpcurl -plaintext -format text -d 'queue:"queue" messages:{ payload:"TestGeneratedMessage" metadata:{ key:"date" value:"121225" } }' \    localhost:18182 tarantool.queue_ee.Producer/Produce

Ожидаемый ответ:

ids: 7427358492534505472is_duplicates: false

Проверка подписки на очередь сообщений

Для проверки подписки нужно выполнить следующую последовательность действий:

  1. Откройте двунаправленный поток командой:
$ grpcurl -plaintext -d @ \    localhost:18182 tarantool.queue_ee.Consumer/Subscribe
  1. Отправьте запрос на подписку:
{"subscribe_request": {"queue": "queue", "cursor": ""}}

Ожидаемый ответ:

{  "notifications":  [    {      "cursor": "AQAAAAAAAAAJAAAAAAAAAHN0b3JhZ2UtMQAAwICKOwxm",      "message": {        "id": "7358127929391316992",        "queue": "queue",        "payload": "SomeData",        "metadata": [          {            "key": "date",            "value": "121225"          }        ],        "timestamp": "1753167571459351000"      }    },  ]}

Совпадение идентификаторов сообщений (поля id) при выполнении публикации сообщения в очереди и подписки на неё говорит о корректном завершении установки приложения и настройки очереди сообщений.

Была ли статья полезна?