Быстрый старт¶
Данное руководство предназначено для ознакомления с продуктом 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
Установка экземпляра¶
Распакуйте архив с дистрибутивом TQE(MQ):
$ tar -xzf <имя_архива>.tar.gz
Перейдите в директорию с распакованным дистрибутивом:
$ cd message-queue-ee
Запуск ядра¶
Для запуска ядра TQE(MQ) выполните команду:
$ tt start
Ответ должен иметь вид:
• Starting an instance [message-queue-ee:app]...
Теперь убедимся, что приложение было успешно запущено:
$ tt status
INSTANCE STATUS PID MODE
message-queue-ee:app RUNNING 10841 RO
Далее необходимо настроить конфигурацию хранилища данных для очереди сообщений.
В данном случае используются преднастроенные файлы конфигурации instances.yml
и config.yml
. Они поставляются в дистрибутиве и после распаковки находятся в корневой директории message-queue-ee/
.
В них определяется топология кластера – какие узлы какую роль будут выполнять, а также задается группировка узлов по наборам реплик (replica sets) для резервирования данных.
Также на этом шаге выполняется инициализация базы данных в кластере.
$ tt replicaset vshard bootstrap .
Ответ должен иметь вид:
• Discovery application...
Orchestrator: centralized config
Replicasets 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¶
Помимо варианта локального запуска, приведенного выше, можно запустить приложение в Docker.
Это удобный способ запустить несколько экземпляров в кластерной конфигурации с помощью одной команды.
Для определения конфигурации приложения и параметров запуска также используется преднастроенный файл compose.yaml
(находится в корневой директории message-queue-ee/
).
$ docker-compose up -d --build
Настройка конфигурации после установки¶
Определение параметров модуля 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-сервера).
Запуск модуля API (gRPC-сервера):
$ bin/message-queue-ee -d -config config.service.yml
Проверка установки приложения¶
Использование скриптов проверки работоспособности¶
В директории message-queue-ee/scripts
расположены скрипты, с помощью которых можно проверить работоспособность приложения.
Для работы скриптов требуется установить утилиту grpcurl
.
Работа установленного приложения проверяется командой:
$ ./scripts/test.sh localhost:18182
Test passed.
Сообщение Test passed.
сообщает о корректной установке и работе дистрибутива.
Если существуют ошибки в установке или работе приложения, то при выполнении скрипта
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"
при выполнении публикации сообщения в очереди и подписки на нее говорит о корректном завершении установки приложения и настройки очереди сообщений.