GCP mongodb проблема с внешним ip-соединением - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть spring MVC application, и я подключаю его к MongoDB кластеру

Это в файле application.properties

mongodb.url=mongodb://userName:Password@xx.xx.x.xx:27017,xx.xx.x.xx:27017,xx.xx.x.xx:27017/?authSource=admin

Кластер развернут на GCP с одним основным и 2 дополнительными серверами. Однако после развертывания, когда я нажимаю API для получения данных, я получаю сообщение об ошибке

{java.net.UnknownHostException: mongodb-3-arbiters-vm-0}}, {address=mongodb-3-servers-vm-1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongodb-3-servers-vm-1}, caused by {java.net.UnknownHostException: mongodb-3-servers-vm-1}}

Внешний IPs сопоставляется с именем сервера на GCP приборная панель. xx.xx.xx.xx:27017 to mongodb-3-servers-vm-1:27017, что приводит к неизвестному исключению хоста. что делать, чтобы этого избежать?

1 Ответ

0 голосов
/ 10 апреля 2020

При подключении к набору реплик имена хостов, IP-адреса и номера портов, указанные в строке подключения, являются начальным списком.

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

Это означает, что имена хостов и номер порта, которые вы использовали при запуске rs.initiate или rs.add, должны разрешаться как членами набора реплик, так и каждым клиентским хостом. это будет соединение.

Существует функция, которая поддерживает передачу удаленным клиентам другого имени хоста, похожего на DNS с разделенным горизонтом, но за пределами репозитория git я не вижу упоминания об этом. ,

...