Что произойдет, если создать MongoClientURI из URI, содержащего несколько хостов, но не параметр replicaSet?

1

Из документации MongoClientURI:

Представляет URI, который можно использовать для создания экземпляра MongoClient. URI описывает используемые хосты и параметры. Формат URI:

MongoDB://[имя пользователя: пароль @] host1 [: port1] [, host2 [: port2],... [, hostN [: portN]]] [?/[база данных [.collection]] [опции]]

-

host1 является единственной необходимой частью URI. Он идентифицирует адрес сервера для подключения.

-

Конфигурация набора реплик:

replicaSet = name: подразумевает, что указанные узлы являются списком посещений, и драйвер попытается найти всех членов набора.

Интересно, есть ли смысл передавать несколько хостов без указания replicaSet? Будет ли клиент Mongo обнаруживать набор реплик, если я передаю все узлы узлов, но забудьте указать replicaSet?

Теги:
documentation
replication
mongodb-java

1 ответ

2
Лучший ответ

То же самое можно сказать и о передаче "списка семян" членов набора реплик, но не всех членов набора. Драйвер по существу "запросит" первый доступный элемент, чтобы определить информацию о наборе реплик.

Это позволяет такие вещи, как первый член или даже ни один из упомянутых членов, на самом деле является настоящим PRIMARY. Затем возвращаемая информация сообщает драйверу, что все члены и, конечно, тот, в котором сейчас находится PRIMARY, поскольку это, по крайней мере, всегда будет необходимо для записи.

В другом случае здесь, конечно, есть несколько экземпляров "routers" или "mongos" для осколочного кластера. Указав более того, что один из списка хостов приведет к тому, что один из этих хостов будет выбран во время соединения в качестве точки, к которой подключен. В случае ошибки в этом соединении и когда вы будете обрабатывать это, последующие попытки затем подхватили бы "первый доступный" хост и использовали бы это для соединения.

Это довольно много охватывает различные случаи, когда у вас может быть несколько хостов в вашем URI-соединении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню