Update README.md

This commit is contained in:
Григорий Сафронов 2025-07-06 20:13:16 +00:00
parent 07189d1fb2
commit 023fe17ed5

View File

@ -192,40 +192,63 @@ Update successful
## Репликация
1. Откройте директорию с Futriix:
1. Включите репликацию в конфигурационном файле `futriix.config.toml`, установив enabled = true в секции [replication] в файле конфигурации
`futriix.config.toml`
```sh
$ cd futriix
[replication]
enabled = false # Включена ли репликация
peer_nodes = [] # Список узлов для репликации (например ["192.168.1.2:8080"])
sync_interval = 1000 # Интервал синхронизации в мс
```
2. Откройте файл конфигурации futriix.conf в любом текстовом редакторе, например nano, как в примере приведённом ниже:
2. Откройте файл конфигурации `futriix.config.toml` в любом текстовом редакторе, например nano, если вы всё сделали правильно, он должен выглядеть так:
```sh
$ nano futriix/futriix.conf
$ nano futriix/futriix.conf.toml
```
3. Проверьте, установлены ли значения "yes" для параметров "active-replica" и "multi-master" в файле конфигурации `futriix.conf`
После чего добавьте в файл конфигурации ip-адреса, узлов вашего кластера.
Если вы всё сделали правильно у вас должны отобразится строки в файле конфигурации `futriix.conf` как показано ниже:
```sh
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
[server]
ip = "127.0.0.1" # IP-адрес сервера (0.0.0.0 для доступа из сети)
port = 8080 # Порт для TCP-сервера
log_path = "futriix.log" # Путь к лог-файлу
[client]
ip = "127.0.0.1" # IP для клиента (обычно localhost)
port = 8080 # Порт клиента (должен совпадать с серверным)
[replication]
enabled = false # Включена ли репликация
peer_nodes = [] # Список узлов для репликации (например ["192.168.1.2:8080"])
sync_interval = 1000 # Интервал синхронизации в мс
[http_api]
enabled = true # Включить HTTP API
port = 8081 # Порт для HTTP API (обычно на 1 больше основного)
```
4. Сохраните внесённые вами изменения, выйдите из редактора, воспользовавшись командами ниже:
4. Сохраните внесённые вами изменения, после чего репликация будет доступна в субд, выйдите из редактора, воспользовавшись командами ниже:
```sh
$ ctrl+O
$ ctrl+x
```
5. Перейдите в директорию Futriix и запустите скрипт `cluster.sh` с параметрами `pick` (скрипт запущенный с данным параметром "соберёт кластер"), и `run`,(скрипт запущенный с данным параметром "запустит кластер") как указано ниже:
```sh
$ ./cluster pick
$ ./cluster run
5. Также для включения репликации вы можете использовать команду в `futriix-cli`:
```sh
futriix:~> replication on
```
Сервер автоматически начнёт синхронизацию с указанными пирами (peer_nodes) с заданным интервалом (sync_interval).
После включения сервер будет периодически отправлять команды из истории (command_history) на все пиры для поддержания согласованности данных.
### Команды для управления репликацией
В проекте добавлены следующие команды для управления репликацией:
```sh
replication on — включить репликацию
replication off — выключить репликацию
replication status — получить статус репликации (включена/выключена, список пиров, время последней синхронизации)
replication add-peer <addr> — добавить пир для репликации (например, replication add-peer 127.0.0.1:8081)
replication remove-peer <addr> — удалить пир из списка репликации
```
6. Для остановки кластера запустите скрипт `cluster.sh` с параметром `stop`
```sh
$ ./cluster stop
```
<p align="right">(<a href="#readme-top">К началу</a>)</p>
## Резервное копирование