Кластер CouchDB против репликации в Docker Swarm - PullRequest
0 голосов
/ 12 сентября 2018

Я искал базу данных NoSQL с возможной согласованностью, которую я мог бы использовать для своего небольшого проекта по созданию роя.Это гетерогенная служба, поэтому у меня есть файл docker-compose.yml, который я собираюсь деплировать в рой, используя docker stack deploy -c docker-compose.yml.

Малый, означает, что моя настройка роя обычно состоит из 2 рабочих узлов.Иногда я собираюсь развернуть ту же службу (или с очень небольшими изменениями в файле docker-compose.yml) в рое с 3 рабочими узлами, а иногда даже, может быть, с 4-ю.

контейнером, в котором работает CouchDBвыставляет порт в режиме сетевого хоста.Программное обеспечение, работающее на рабочих узлах, может всегда подключаться к CouchDB с помощью localhost.

Я стремлюсь к установке CouchDB, которая позволяет отключать n-1 (все, кроме одного) рабочих узлов.Я не пишу / не читаю много данных в базу данных.Я ожидаю добавить / изменить несколько документов в час.Даже полная потеря данных не причинит большого вреда, потому что программное обеспечение, работающее в рое, может воссоздать свои документы.CouchDB следует использовать, чтобы поделиться «общим состоянием» всех роевых работ с внешним миром.Я даже не ожидаю конфликтов.Каждый узел «владеет» своим собственным набором документов.

Аналогичный вопрос размещен на Cluster vs replication , который предлагает использовать кластер для версий CouchDB более 2.0.0.Настройка для кластера будет такой:

[cluster]
    q=1
    r=1
    w=1
    n=2 # or 3 or 4-n, depending on the number of worker 

Я совершенно не уверен, потому что, кажется, что устарели r и w упомянутых там , но параметры все еще покрытыв документации по теории кластеров .Кажется, что вы не можете указать r и w, когда вы создаете базу данных.

Насколько я понимаю, вы не можете гарантировать, что r и w установлены на 1было бы невозможно использовать кластер CouchDB, чтобы достичь того, к чему я стремлюсь.В случае выхода из строя некоторых узлов вы можете даже не иметь возможности писать или читать из базы данных.

Поэтому мои вопросы таковы:

  • По-прежнему возможно или рекомендуюиспользовать r и w (для моих целей)?
  • Стоит ли мне настраивать репликацию master-master между моими 2,3, n узлами вручную и не использовать кластер?
...