Устаревшие функции
Прекращена поддержка ZooKeeper и orchestrator
. Тем не менее, при необходимости их можно использовать.
В следующих разделах описаны соответствующие функциональные возможности.
Для управления кластером используйте оркестратор orchestrator
, включенный в комплект поставки. orchestrator
использует ZooKeeper для хранения и передачи конфигурации. Для управления кластером в orchestrator
есть REST API. Изменение конфигураций в ZooKeeper осуществляется в результате вызова API-функций из orchestrator
, что, в свою очередь, приводит к изменениям конфигурации узлов Tarantool.
Мы рекомендуем использовать интерфейс командной строки curl для вызова API-функций из orchestrator
.
В следующем примере показано, как зарегистрировать новую зону доступности (DC):
$ curl -X POST http://HOST:PORT/api/v1/zone \
-d '{
"name": "Caucasian Boulevard"
}'
Чтобы проверить, была ли выполнена регистрация DC, попробуйте использовать следующую команду. Результатом будет список всех зарегистрированных узлов в формате JSON:
$ curl http://HOST:PORT/api/v1/zone| python -m json.tool
Чтобы применить новую конфигурацию непосредственно к узлам Tarantool, увеличьте номер версии конфигурации после вызова API-функции. Для этого используйте запрос POST к /api/v1/version
:
$ curl -X POST http://HOST:PORT/api/v1/version
В целом, чтобы обновить конфигурацию кластера:
- Call the
POST/PUT
method of theorchestrator
. As a result, the ZooKeeper nodes are updated, and a subsequent update of the Tarantool nodes is initiated. - Update the configuration version using the
POST
request to/api/v1/version
. As a result, the configuration is applied to the Tarantool nodes.
Для получения дополнительной информации об API оркестратора см. Справочник по Orchestrator API.
По логике узлы кластера могут относиться к некоторой зоне доступности. Физически же зона доступности – это отдельный DC или стойка внутри DC. Можно задать матрицу весов (расстояний) для зон доступности.
Новые зоны добавляются путем вызова соответствующего метода API оркестратора.
По умолчанию матрица весов (расстояний) для зон не настроена, а геодублирование для таких конфигураций работает следующим образом:
- Данные всегда записываются на мастер.
- Если мастер доступен, то он используется для чтения.
- Если мастер недоступен, то любая доступная реплика используется для чтения.
Когда вы задаете матрицу весов (расстояний), вызывая /api/v1/zones/weights
, система автоматического масштабирования СУБД Tarantool находит реплику, которая ближе всех к указанному роутеру по весам, и начинает использовать эту реплику для чтения. Если эта реплика недоступна, то выбирается следующая ближайшая реплика с учетом расстояний, указанных в конфигурации.