GCP mongodb外部ip连接问题

时间:2020-04-09 11:41:06

标签: spring mongodb google-cloud-platform

我有一个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 :(得分:0)

连接到副本集时,连接字符串中提供的主机名,IP地址和端口号是种子列表。

驱动程序将连接到种子列表中的主机,以进行初始连接。它使用此连接来执行服务器发现。它查询首先连接的服务器的主机名,端口号以及副本集其他成员的状态。服务器从副本集配置文档中获取此信息。

这意味着在运行rs.initiaters.add时使用的主机名和端口号必须对副本集成员和将要连接的每个客户端主机都可以解析。

有一个功能支持传递远程客户端一个不同的主机名,类似于水平分割DNS,但是在git存储库之外,我没有提到它。