Не удается подключиться к кластеру Mongo как набор реплик, только как автономный

#mongodb #nosql

Вопрос:

Я создал кластер MongoDB с архитектурой PSA (Первичный, вторичный, арбитр) с облачной платформой Google.

Я включил аутентификацию и настроил файл ключей для каждой реплики (и арбитра).

Затем я открыл порт 27017 для внешнего доступа, как только аутентификация была установлена.

После этого я попытался подключиться к кластеру, как показано в документе MongoDB, как показано ниже :

mongodb://user:VeRyG00dPwD@primary_external_IP:27017,secondary_external_IP:27017,arbiter_external_IP:27017/my_db?authSource=adminamp;replicaSet=rs0

Это не работает, и время ожидания подключения истекло.

Я также попробовал использовать только IP-адрес основной реплики:

mongodb://user:VeRyG00dPwD@primary_external_IP:27017/my_db?authSource=adminamp;replicaSet=rs0

Это тоже не сработало, время подключения истекло

Тогда я попробовал просто :

mongodb://user:VeRyG00dPwD@ primary_external_IP:27017/admin

И это сработало просто отлично, но, афаик, это не должно так работать с набором реплик. Кстати, когда я отправляю данные, используя эту строку подключения, она использует только первичный узел, а не вторичный…

Является ли это нормальным поведением для кластера набора реплик ? Может быть, я пропустил какой-то параметр при настройке, но я не знаю, какой именно.

Заранее спасибо за вашу помощь !

Редактировать:

Вот строки о режиме репликации:

 replication:
  replSetName: rs0
  enableMajorityReadConcern: false
 

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

1. Не волнуйтесь, это не настоящая информация, все ложь 😉 Для имени набора реплик я только что проверил 3 узла, и все то же самое. (Я добавил строки в правку поста)

2. Как я мог это сделать ? Я только что создал кластер с помощью помощника GCP и не запускал никаких команд для установки узлов в моде ReplicaSet :/ (Я просто понял ваш комментарий о пользователях, я удалил раздел в посте)

3. Я думаю, что вы можете подключиться к любому из узлов и запустить rs.initiate() , и это прочитает файлы конфигурации. docs.mongodb.com/manual/tutorial/deploy-replica-set . Я удаляю комментарий, чтобы сохранить ваш пост в чистоте.

4. Это действительно показало первичное вторичное и арбитра по подсказке ! и rs.status возвращает информацию

5. Этот вывод может быть полезно включить, чтобы люди здесь могли видеть, что набор реплик запущен