Как найти основной хост реплики MongoDB и доступ в Python - PullRequest
0 голосов
/ 30 апреля 2019

enter image description here

У меня есть один основной хост как mongo1.ppshein.net, вторичный хост как mongo1.ppshein.net и арбитр как mongo3.ppshein.net, и настроенная реплика MongoDB, как показано выше в AWS EC2. И в каждом из конфигурационных файлов MongoDB bindIP - это имя хоста и хост сервера приложений.

Чтобы получить доступ к реплике MongoDB из python, я подумал, что смогу использовать следующий фрагмент кода,

>>> from pymongo import MongoClient
>>> db = MongoClient('mongodb://serverA:27017, serverB:27017, serverC:27017/?replicaSet=foo').db_name

Но проблема в том, что serverA не работает / неработоспособен, я не уверен, будет ли приведенный выше фрагмент кода работать должным образом или нет. Вот почему мне любопытно узнать, как получить основной хост MongoDB вместо добавления нескольких хостов в строку подключения?

1 Ответ

1 голос
/ 30 апреля 2019

Как только вы подключитесь к набору реплик, драйвер всегда переподключит вас к основному, если он может быть выбран (т. Е. У вас есть кворум узлов). единственная причина, по которой вы указываете список узлов в аргументе, состоит в том, чтобы предотвратить ситуацию, когда вы пытаетесь подключиться к узлу, который не работает. если этот узел не работает, вы получите тайм-аут сервера.

Полная спецификация протокола обнаружения и мониторинга сервера: здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...