Быстрый старт | Mq_Ee
Быстрый старт

Быстрый старт

Данное руководство предназначено для ознакомления с продуктом Tarantool Queue Enterprise, функциональность MQ (далее по тексту – TQE(MQ).

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

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

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

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

  • РЕД ОС 7.3;

  • Astra Linux.

Также возможно установка на другие ОС – ALTLinux, 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) выполните команду:

$ cartridge start -d

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

 message-queue-ee.app... OK
  1. Далее необходимо настроить конфигурацию хранилища данных для очереди сообщений.

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

Также на этом шаге выполняется инициализация базы данных в кластере (флаг --bootstrap-vshard).

$ cartridge replicasets setup --bootstrap-vshard

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

 Set up replicasets described in /home/redos/message-queue-ee/replicasets.yml
• app... CREATED
• Replicasets are set up successfully
• Bootstrap vshard task completed successfully, check the cluster status

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

Помимо варианта локального запуска, приведенного выше, можно запустить приложение в Docker.

Это удобный способ запустить несколько экземпляров в кластерной конфигурации с помощью одной команды. Для определения конфигурации приложения и параметров запуска также используется преднастроенный файл compose.yaml (находится в корневой директории message-queue-ee/).

$ docker-compose up -d --build

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

  1. Определение параметров подключения к очереди TQE(MQ):

$ curl "localhost:8081/admin/config" -X PUT --data-binary @- <<EOF
---
queues: ["queue"]
creds:
  user: user
  pass: pass
...
EOF

где:

  • queue – название очереди сообщений;

  • user – имя пользователя;

  • pass – пароль.

user и pass определяются пользователем и в дальнейшем используются при подключении к очередям TQE(MQ).

Отсутствие ошибок в терминале сигнализирует о корректной настройке подключения к очереди.

  1. Определение параметров модуля API (gRPC-сервера):

$ cat > config.service.yml <<EOF
app_name: MESSAGE_QUEUE_EE_API
app_version: test
core_host: 0.0.0.0
core_port: 18184
grpc_host: 0.0.0.0
grpc_port: 18182

publisher:
  enabled: true
  tarantool:
    user: user
    pass: pass
    queues:
      queue:
        connections:
          routers:
            - "localhost:3301"
consumer:
  enabled: true
  polling_timeout: 500ms
  tarantool:
    user: 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:18182
Test passed.

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

  1. Если существуют ошибки в установке или работе приложения, то при выполнении скрипта test.sh будет выдано подобное сообщение:

$ ./scripts/test.sh localhost:18182
Test failed: message id expected "1", got "2".

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

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

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

$ grpcurl -plaintext -d '{"queue": "queue","payload": "TestGeneratedMessage"}' \
    localhost:18182 tarantool.queue_ee.PublisherService/Publish

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

{
  "id": "1",
  "metadata": {
    "x-timestamp": "1707736240527095940",
    "x-timestamp-queue-ee-publish-request-persisted": "1707736240527095940",
    "x-timestamp-queue-ee-publish-request-received": "1707736240524811467",
    "x-timestamp-queue-ee-publish-request-validated": "1707736240524934370"
  }
}

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

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

$ grpcurl -plaintext -d '{"queue": "queue","cursor": ""}' \
    localhost:18182 tarantool.queue_ee.ConsumerService/Subscribe

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

{
  "notifications": [
    {
      "cursor": "Dv+BBAEC/4IAAQwBBgAAD/+CAAEJc3RvcmFnZS0xAQ==",
      "message": {
        "id": "1",
        "queue": "queue",
        "payload": "TestGeneratedMessage",
        "metadata": {
          "x-timestamp": "1707736240524934370",
          "x-timestamp-queue-ee-publish-request-received": "1707736240524811467",
          "x-timestamp-queue-ee-publish-request-validated": "1707736240524934370"
        }
      }
    }
  ]
}

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

Found what you were looking for?
Feedback