From 023fe17ed5c19af9415137e1d2173466f6caf29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 6 Jul 2025 20:13:16 +0000 Subject: [PATCH] Update README.md --- README.md | 67 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 601e7f9..8d6ddb6 100644 --- a/README.md +++ b/README.md @@ -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 — добавить пир для репликации (например, replication add-peer 127.0.0.1:8081) + replication remove-peer — удалить пир из списка репликации ``` -6. Для остановки кластера запустите скрипт `cluster.sh` с параметром `stop` - ```sh - $ ./cluster stop - ``` -

(К началу)

## Резервное копирование