Есть ли простой способ настройки зеркал rethinkdb?

#rethinkdb

#rethinkdb

Вопрос:

Например, это запустит два сервера в кластере

 () rethinkdb -n A --directory DATA_A
() rethinkdb -n B --directory DATA_B --port-offset 1 --join localhost:29015
 

Однако они не являются зеркалами / репликами, поскольку DATA_A и DATA_B не эквивалентны.

Итак, по сути, мне интересно, есть ли способ запустить кластер или сервер, который будет отражать базы данных и / или таблицы, при этом новое зеркало может быть добавлено в любое время, и оно, по сути, догонит другую базу данных или таблицу, а затем продолжит синхронизацию в режиме реального времени.

Тогда в любой момент любое зеркало может быть сброшено, и архивы будут эквивалентны.

Любая информация будет высоко оценена, спасибо!!

Ответ №1:

Похоже, это можно сделать для каждой таблицы, установив replica клавишу reconfigure () или tableCreate () .

например

 () rethinkdb -n A --directory DATA_A --bind all
() rethinkdb -n B --directory DATA_B --port-offset 1 --join localhost:29015
() rethinkdb -n C --directory DATA_C --port-offset 2 --join localhost:29015
 

(JS) После подключения и создания базы данных

     var db = "";
    var table = "";
    r.db (db).tableCreate (table, {
        replicas: 3
    }).
    run (connection, (err, res) => {
        if (err) throw err;
    });
 

После этого все вставленные документы table должны присутствовать во всех трех каталогах данных.

 () rethinkdb-dump -c localhost:28015 -f A.tar.gz
() rethinkdb-dump -c localhost:28016 -f B.tar.gz
() rethinkdb-dump -c localhost:28017 -f C.tar.gz