CouchDB 1.6: настройка репликации для баз данных на внешних узлах

#couchdb #replication

#couchdb #репликация

Вопрос:

Я использую CouchDB 1.6.1 на двух отдельных серверах (сервер A и сервер B).

Для обеспечения согласованности я настраивал все репликации на сервере A. У нас много баз данных. Каждая база данных имеет представление «push to B» и «pull from B».

Однако теперь я хочу разделить базу данных на сервере B. т.е.

dbOnA => dbOnB

dbOnB => subDbOnB1 (с repFilterB1)

dbOnB => subDbOnB2 (с repFilgerB2)

dbOnB => subDbOnB3 (с repFilgerB3)

и т.д.

Что-то не так с настройкой этих представителей на сервере A?

По сравнению с настройкой этих же представителей на сервере B, где находится «локальная» база данных, делаю ли я какие-либо компромиссы с производительностью? эффективность? и т.д.

==== РЕДАКТИРОВАТЬ ====

Чтобы добавить фон:

  • на сервере 1 установлена база данных CouchDB
  • на сервере 2 установлен Barrel
  • Я хотел бы сохранить документы конфигурации, установленные только в Couch
  • Существуют инструменты, которые взаимодействуют с сервером 1, но не с сервером 2

Ответ №1:

Я не совсем уверен, почему вы хотите настроить все на сервере A. Конечно, создаваемая вами репликация будет иметь полные URL-адреса для всех репликаций на сервере B. Когда я настраиваю sth. таким образом, я создаю документ _replication на каждом сервере следующим образом:

на сервере A: извлечение из B
на сервере B: извлечение из A

Таким образом, процесс репликации запускается на каждом сервере и выполняется. При разделении сервера B я не вижу причин не настраивать репликацию на сервере B. Я не вижу никаких компромиссов в производительности при настройке этого на сервере B — наоборот, если вообще.

Комментарии:

1. У нас есть инструменты, которые взаимодействуют с сервером a, а не с сервером b. Также. На сервере B работает barrel, а не couch

2. что ж, это была бы интересная информация 😉

3. Адресовано :). Спасибо за информацию

4. Кстати. Почему вы предпочитаете использовать вытягивающие репликации с точки зрения локального сервера вместо выталкивания?

5. iirc это предлагаемый способ (pull vs. push), но мне жаль признавать, что я не могу найти обсуждение, в котором это было рассмотрено… он также может быть уже устаревшим, по крайней мере, в процессе повторной оптимизации репликатора в CouchDB 2.0 ( blog.couchdb.org/2016/08/15/feature-replication ), хотя протокол не изменился. Для меня это обычная привычка, как я это делаю ;-). Если посмотреть на процессы, которые должны быть запущены, я думаю, что естественно распределить их как можно больше на разные машины