Настройка наборов реплик
Используйте команду cartridge replicasets
, чтобы настроить наборы реплик для локального запуска.
cartridge replicasets [подкоманда] [параметры] [аргументы]
В любой подкоманде replicasets
можно использовать следующие параметры:
--name |
Имя приложения. |
--run-dir |
Директория, где хранятся PID-файлы и файлы сокетов. По умолчанию — ./tmp/run или значение run-dir из файла .cartridge.yml . |
--cfg |
Файл конфигурации экземпляра, по умолчанию — ./instances.yml или значение cfg из файла .cartridge.yml . |
Наборы реплик в Cartridge настраиваются с помощью Lua API. Все экземпляры в топологии описываются в одном файле instances.yml
(см. параметр --cfg
). Экземпляры получают конфигурацию через сокеты консоли, которые находятся в директории запуска.
Сначала все запущенные экземпляры, указанные в файле instances.yml
, объединяются в сеть membership. Таким образом Cartridge проверяет, входят ли уже какие-либо экземпляры в кластер. Один из таких экземпляров затем выполняет кластерные операции.
cartridge replicasets setup [параметры]
Настройка наборов реплик с помощью файла.
Параметры:
--file |
Файл с конфигурацией набора реплик. По умолчанию — replicasets.yml . |
--bootstrap-vshard |
Инициализация vshard при первоначальной настройке. |
Пример конфигурации:
router:
instances:
- router
roles:
- vshard-router
- app.roles.custom
s-1:
instances:
- s1-master
- s1-replica
roles:
- vshard-storage
weight: 11
all_rw: false
vshard_group: default
Все экземпляры должны быть описаны в instances.yml
(или другом файле, переданном в параметре --cfg
).
cartridge replicasets save [параметры]
Сохранение текущей конфигурации в файл.
Параметры:
--file |
Файл, в который сохраняется конфигурация. По умолчанию — replicasets.yml . |
cartridge replicasets join [ИМЯ_ЭКЗЕМПЛЯРА...] [параметры]
Присоединение экземпляра к кластеру.
Параметры:
--replicaset |
Имя набора реплик. |
Если набор реплик с указанным алиасом уже есть в кластере, экземпляры присоединяются к этому набору. Если такого набора нет, он будет создан.
Чтобы Cartridge присоединил экземпляр к набору реплик, в instances.yml
должен быть указан параметр advertise_uri этого экземпляра.
cartridge replicasets add-roles [ИМЯ_РОЛИ...] [параметры]
Добавление ролей для набора реплик.
Параметры:
--replicaset |
Имя набора реплик. |
--vshard-group |
Группа vshard для наборов реплик vshard-storage . |
cartridge replicasets remove-roles [ИМЯ_РОЛИ...] [параметры]
Удаление ролей для набора реплик.
Параметры:
--replicaset |
Имя набора реплик. |
cartridge replicasets set-weight ВЕС [параметры]
Определение веса набора реплик.
Параметры:
--replicaset |
Имя набора реплик. |
В примере используется приложение, созданное командой cartridge create
. Файл instances.yml
выглядит так:
---
myapp.router:
advertise_uri: localhost:3301
http_port: 8081
myapp.s1-master:
advertise_uri: localhost:3302
http_port: 8082
myapp.s1-replica:
advertise_uri: localhost:3303
http_port: 8083
# остальные экземпляры в этом примере не показаны
cartridge replicasets join --replicaset s-1 s1-master s1-replica
• Join instance(s) s1-master, s1-replica to replica set s-1
• Instance(s) s1-master, s1-replica have been successfully joined to replica set s-1
cartridge replicasets join --replicaset router router
• Join instance(s) router to replica set router
• Instance(s) router have been successfully joined to replica set router
cartridge replicasets list-roles
• Available roles:
• failover-coordinator
• vshard-storage
• vshard-router
• metrics
• app.roles.custom
cartridge replicasets add-roles --replicaset s-1 vshard-storage
• Add role(s) vshard-storage to replica set s-1
• Replica set s-1 now has these roles enabled:
• vshard-storage (default)
cartridge replicasets add-roles \
--replicaset router \
vshard-router app.roles.custom failover-coordinator metrics
• Add role(s) vshard-router, app.roles.custom, failover-coordinator, metrics to replica set router
• Replica set router now has these roles enabled:
• failover-coordinator
• vshard-router
• metrics
• app.roles.custom
cartridge replicasets bootstrap-vshard
• Bootstrap vshard task completed successfully, check the cluster status
cartridge replicasets list
• Current replica sets:
• router
Role: failover-coordinator | vshard-router | metrics | app.roles.custom
★ router localhost:3301
• s-1 default | 1
Role: vshard-storage
★ s1-master localhost:3302
• s1-replica localhost:3303