Запуск Tarantool DB (RESP) с помощью TT CLI¶
В этом руководстве показано, как развернуть Tarantool DB (RESP) локально, используя утилиту TT CLI (tt
).
Содержание:
Пререквизиты¶
Для выполнения примера требуются:
Используемые файлы¶
В руководстве для конфигурации кластера используются следующие файлы из архива для развертывания:
tt.yaml
– конфигурация TT CLI. Чтобы сгенерировать этот файл, используется команда tt init;tarantool_config_storage/
– директория с файлами для запуска кластера хранилища конфигураций:config.yaml
– конфигурация и топология хранилища конфигураций;instances.yml
– список узлов хранилища конфигураций;
tdbredis/
– директория с файлами для запуска кластера Tarantool DB (RESP):source.yaml
– конфигурация и топология кластера Tarantool DB (RESP);config.yaml
– конфигурация, указывающая расположение хранилища конфигурации;instances.yml
– список узлов кластера Tarantool DB (RESP);
tdbredis/.rocks/share/tarantool/failover.lua
– пользовательский override-модуль координатора для восстановления после сбоев (tarantool --failover
);tdbredis/.rocks/share/tarantool/sentinel.lua
– модуль, реализующий интерфейс Sentinel;tdbredis/.rocks/lib/tarantool/libtdbredis_sentinel.so
– нативная библиотека, часть реализации интерфейса Sentinel;другие модули из
tdbredis/.rocks
.
Запуск стенда¶
Распакуйте архив для развёртывания Tarantool DB (RESP):
tar -xzvf tdb-redis-<VERSION>.tar.gz
Здесь:
VERSION
– версия продукта.
Пример: tdb-redis-1.1.1.tar.gz
.
При распаковке будет создана директория tdb-redis
. Перейдите в неё.
Запустите экземпляры хранилища конфигураций с помощью команды tt start:
tt start tarantool_config_storage
Проверить состояние узлов можно, используя команду tt status:
tt status tarantool_config_storage
Загрузите конфигурацию кластера Tarantool DB (RESP) в централизованное хранилище конфигураций:
LEADER_NODE_NUMBER=$(echo 'box.info.election.leader' | tt connect -x lua tarantool_config_storage:instance001 | cut -b 1)
LEADER_NODE_NAME=$(echo "box.info.replication[$LEADER_NODE_NUMBER].name" | tt connect -x lua "tarantool_config_storage:instance001" | cut -d ';' -f 1 | cut -d '"' -f 2)
LEADER_NODE_ADDRESS=$(echo "box.info.listen" | tt connect -x lua "tarantool_config_storage:$LEADER_NODE_NAME" | cut -d ';' -f 1 | cut -d '"' -f 2)
tt cluster publish "http://sampleuser:123456@$LEADER_NODE_ADDRESS/tdbredis" instances.enabled/tdbredis/source.yaml
Перейдите в директорию instances.enabled/tdbredis/
и запустите координатор для восстановления после сбоев (failover-координатор):
# Переход в директорию обязателен, так как загрузка модулей должна обнаружить
# модули в `instances.enabled/tdbredis/{override/internal,.rocks}`
cd instances.enabled/tdbredis/
tarantool --failover --config config.yaml &>tarantool-failover.log &
echo $! > tarantool-failover.pid
cd -
Лог координатора хранится в файле tarantool-failover.log
.
Запустите экземпляры Tarantool DB (RESP) с помощью команды tt start:
tt start tdbredis
Проверить состояние узлов можно, используя команду tt status:
tt status tdbredis
Теперь кластер доступен.
Подключение к узлу кластера¶
Подключиться к узлу хранилища по протоколу RESP можно с помощью команды redis-cli или другого клиента Redis. Эта команда открывает интерактивную консоль RESP:
redis-cli -p 6379
Задать порт для узла можно в опции roles_cfg.tdb_redis_role.port
в файле конфигурации tdbredis/source.yaml
.
В поставляемом шаблоне конфигурации порты у разных узлов разные, так как все
экземпляры запускаются на одной машине.
Кроме того, по протоколу RESP можно подключиться к интерфейсу Sentinel:
redis-cli -p 26379
В этой консоли доступны команды Sentinel, например:
127.0.0.1:26379> sentinel get-master-addr-by-name replicaset001
1) "127.0.0.1"
2) "6379"
Полный список поддерживаемых команд приведен в документации в разделе Sentinel.
Имя набора реплик указано в tdbredis/source.yaml
:
groups.group001.replicasets.replicaset001
.
Остановка стенда¶
Остановить кластер Tarantoo DB (RESP) можно с помощью команды tt stop:
tt stop tdbredis
Затем остановите failover-координатор:
cd instances.enabled/tdbredis/
FAILOVER_PID=$(cat tarantool-failover.pid)
kill -9 $FAILOVER_PID
cd -
После этого остановите хранилище конфигураций:
tt stop tarantool_config_storage