Быстрый старт¶
Данное руководство предназначено для ознакомления с продуктом 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) выполните команду:
$ cartridge start -d
Ответ должен иметь вид:
• message-queue-ee.app... OK
Далее необходимо настроить конфигурацию хранилища данных для очереди сообщений.
В данном случае используются преднастроенные файлы конфигурации 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
Настройка конфигурации после установки¶
Определение параметров подключения к очереди 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).
Отсутствие ошибок в терминале сигнализирует о корректной настройке подключения к очереди.
Определение параметров модуля 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"
при выполнении публикации сообщения в очереди и подписки на нее говорит о корректном завершении установки приложения и настройки очереди сообщений.