我正在尝试将我的 Spring Boot 服务连接到 mongo 集群。下面是我的 mongo 的 application.yml 配置
uri: mongodb://user:paswd@ip1:27017,ip2:27017,ip3:27017/dbname?authSource=admin&replicaSet=rs0&readPreference=secondary
但是我遇到了以下错误
com.mongodb.MongoSocketException: ip1: nodename nor servname provided, or not known at com.mongodb.ServerAddress.getSocketAddresses(ServerAddress.java:211) at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:75) at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:143) at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:188) at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:144) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.net.UnknownHostException: ip2: nodename nor servname provided, or not known at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:933) at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1529) at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:852) at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1519) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1377) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1305) at com.mongodb.ServerAddress.getSocketAddresses(ServerAddress.java:203) ... 6 common frames omitted
相同的任何解决方案
我期待这个问题的解决方案
ip1
、ip2
、ip3
应该是可在 DNS 查找服务中解析的 IP 地址或名称。
你应该有这样的东西:
uri: mongodb://user:[email protected]:27017,81.12.33.42:27017,81.12.33.43:27017/dbname?authSource=adm...
或
uri: mongodb://user:[email protected]:27017,hosthost2.somedomain.com:27017,hosthost3.somedomain.com:27017/dbname?authSource=adm...