Код: Выделить всё
2024-07-14T01:15:32.428Z INFO 1 --- [localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017
2024-07-14 02:15:32.433 BST
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.lambda$open$0(SocketStream.java:84) ~[mongodb-driver-core-4.11.1.jar!/:na]
at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:84) ~[mongodb-driver-core-4.11.1.jar!/:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:211) ~[mongodb-driver-core-4.11.1.jar!/:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:196) ~[mongodb-driver-core-4.11.1.jar!/:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:156) ~[mongodb-driver-core-4.11.1.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:633) ~[na:na]
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:76) ~[mongodb-driver-core-4.11.1.jar!/:na]
at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:104) ~[mongodb-driver-core-4.11.1.jar!/:na]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:78) ~[mongodb-driver-core-4.11.1.jar!/:na]
... 4 common frames omitted
Проверил службу облачного запуска:
Приложение подтверждено для локального запуска и подключения к кластеру и сохраненной базе данных.
Порт контейнера — 8080.
Dockerfile создан для сборки и запуска приложения Spring Boot в контейнере. Подтверждено выполнение.
Строка подключения MongoDB добавляется в качестве переменной среды.
Сеть: подключитесь к VPC для исходящего трафика -> с помощью созданного бессерверного соединителя vpc.
Маршрутизация трафика: маршрутизация требуется только для частные IP-адреса для VPC.
Сеть VPC:
Я создал бессерверный соединитель доступа к VPC, используя сеть по умолчанию, и выходное правило брандмауэра, позволяющее Трафик mongoDB для стандартного порта mongoDB 27017. Для него установлен приоритет 1000.
Облачный NAT:
Я дополнительно создал облачный NAT общедоступного типа. шлюз, использующий ту же сеть по умолчанию, и созданный облачный маршрутизатор (он не объявляет диапазоны IP-адресов или подсети). Идентификатор BGN установлен на автоматический.
Сопоставление Cloud NAT настроено на следующее:
Высокая доступность: да.
Тип исходной конечной точки: экземпляры виртуальных машин, узлы GKE, Без сервера.
Исходные подсети и диапазоны IP-адресов: основные и дополнительные диапазоны IP-адресов всех подсетей.
IP-адрес Cloud NAT: xx.xxx.xx.xxx, он также соответствует общему 0.0.0.0/0
MongoDB:
- статические IP-адреса
- 0.0.0.0/0
- CIDR из соединителя vpc (например, 10.8.0.0/28)
Строка подключения:
Код: Выделить всё
"mongodb+srv://admin:[email protected]/InventoryDB?retryWrites=true&w=majority"
Подробнее здесь: https://stackoverflow.com/questions/787 ... ogle-cloud