#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 ), хотя протокол не изменился. Для меня это обычная привычка, как я это делаю ;-). Если посмотреть на процессы, которые должны быть запущены, я думаю, что естественно распределить их как можно больше на разные машины