Руководство администратора¶
В руководстве администратора описаны сценарии эксплуатации и администрирования Tarantool Queue Enterprise, функциональность MQ (далее по тексту – TQE(MQ).
Введение¶
TQE(MQ) состоит из двух компонентов:
модуль API – предоставляет интерфейс для взаимодействия с очередью посредством gRPC-протокола;
ядро – выполняет функцию хранилища и представляет собой кластерное приложение на Tarantool.
Сценарии использования в данном руководстве разделены согласно компонентам TQE(MQ).
Сценарии охватывают следующие роли пользователей TQE(MQ):
инженер по эксплуатации;
администратор.
Сценарии использования¶
Инженер по эксплуатации выполняет следующие сценарии:
Администратор выполняет следующие сценарии:
Проверка статусов компонентов TQE(MQ)¶
Проверка статуса ядра¶
Проверка статуса ядра выполняется с помощью команды:
$ curl localhost:8081/health
Примечание: здесь и далее адрес localhost
используется в случае локального выполнения примеров команд. В промышленной эксплуатации значению localhost
может соответствовать адрес/сетевое имя соответствующего удаленного сервера.
В случае штатного режима работы ядра возвращаемый ответ:
app is OK
Проверка статуса модуля API¶
Проверка статуса модуля API выполняется с помощью команды:
$ curl localhost:18184/readyz
В случае штатного режима работы модуля API возвращаемый ответ:
{
"consumer-tarantool": "OK",
"publisher-tarantool": "OK",
"started": "OK"
}
Где:
started
обязательное значение. Указывает на статус работы модуля API. Принимает значения «OK» или текст ошибки.consumer-tarantool
необязательное значение. Указывает на статус подключения сервиса подписки на сообщения к ядру TQE(MQ). Принимает значения «OK» или текст ошибки.publisher-tarantool
необязательное значение. Указывает на статус подключения сервиса публикации сообщений к ядру TQE(MQ). Принимает значения «OK» или текст ошибки.
Получение метрик компонентов TQE MQ¶
Встроенный инструментарий TQE(MQ) предоставляет метрики для оценки процесса работы с сообщениями в очередях.
Эти метрики предоставляют диагностическую информацию для использования в стороннем программном обеспечении.
Получение метрик ядра¶
Метрики ядра TQE(MQ) соответствуют стандартному набору метрик tarantool
.
С перечнем метрик можно ознакомиться здесь
В дополнение реализованы метрики, специфичные для TQE(MQ):
mqee_tnt_duplicates_total
– счетчик дубликатов
Метрики ядра TQE(MQ) доступны по адресу (endpoint):
$ curl localhost:8081/metrics
Ожидаемый ответ содержит перечень метрик, отражающих текущее состояние очереди сообщений TQE(MQ). Пример частичного вывода метрик ядра:
# HELP tnt_vinyl_disk_index_size Amount of index stored in files
# TYPE tnt_vinyl_disk_index_size gauge
tnt_vinyl_disk_index_size{alias="app"} 0
# HELP tnt_read_only Is instance read only
# TYPE tnt_read_only gauge
tnt_read_only{alias="app"} 0
# HELP tnt_vinyl_disk_data_size Amount of data stored in files
# TYPE tnt_vinyl_disk_data_size gauge
tnt_vinyl_disk_data_size{alias="app"} 0
...
Полный список метрик компонента ядра приведен в документе «Справочники».
Получение метрик модуля API¶
Метрики модуля API доступны по адресу (endpoint):
$ curl localhost:18184/metrics
Ожидаемый ответ содержит перечень метрик, отражающих текущее состояние модуля API. Пример частичного вывода метрик модуля API:
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 5.3002e-05
go_gc_duration_seconds{quantile="0.25"} 7.574e-05
go_gc_duration_seconds{quantile="0.5"} 9.047e-05
go_gc_duration_seconds{quantile="0.75"} 0.000111856
go_gc_duration_seconds{quantile="1"} 0.000338263
go_gc_duration_seconds_sum 1.305067544
go_gc_duration_seconds_count 11608
...
Полный список метрик компонента модуля API приведен в документе «Справочники».
Установка компонентов TQE(MQ)¶
Установка компонентов TQE(MQ) выполняется с помощью инсталлятора Ansible Tarantool Enterprise (ATE). Подготовка ATE к работе и процедуры установки компонентов TQE(MQ) описаны в документации ATE.
Конфигурация компонентов TQE(MQ)¶
Конфигурация компонентов TQE(MQ) включает в себя раздельные настройки для ядра и для модуля API. Настройки описываются в формате YAML.
Конфигурацию выполняют сначала для ядра, а затем для модуля API.
Конфигурация ядра¶
Конфигурация ядра состоит из нескольких секций, описываемых далее.
Конфигурация ядра происходит стандартными средствами Tarantool 3: с помощью обновления файла конфигурации или конфигурации в etcd/Tarantool Config Storage. Подробнее про конфигурацию в Tarantool 3 можно прочитать здесь
Основная конфигурация очереди задается на уровне ролей app.roles.api
и app.roles.queue
, например:
roles_cfg:
app.roles.queue:
queues: ["queue1", "queue2"]
Примечание: в запросе передаваемые параметры queue1
,queue2
являются названиями создаваемых очередей сообщений
Конфигурация модуля API¶
Примечание: параметры конфигурации компонента модуля API должны быть определены до его запуска и запуска TQE(MQ) во избежание проблем с подключением к очереди сообщений и аварийным завершением работы модуля API.
YAML-файл конфигурации модуля API имеет несколько секций. Полный перечень настроек представлен в следующем примере:
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"
log:
file: log.jsonl
format: json
level: info
Резервное копирование¶
Для резервного копирования данных TQE(MQ) необходимо выполнить процедуру бэкапа ядра (кластерного приложения) c помощью инсталлятора Ansible Tarantool Enterprise.