Spring Data MongoDB连接到AWS上的MongoDB集群的主要实例

时间:2019-12-06 06:57:16

标签: mongodb amazon-web-services amazon-ec2 spring-data-mongodb

通常,我像这样在Spring Boot应用程序中配置application.yml以连接到单个MongoDB实例:

spring.data.mongodb:
 host: 127.0.0.1
 port: 42017
 database: mydb

由于实例位于AWS EC2计算机上,因此我建立了一个SSH隧道(端口转发),将本地端口42017映射到远程10.0.42.1端口27017

现在,我正在尝试使用数据库集群,我建立了一个SSH隧道,并运行我的应用程序,它仅显示以下消息并自行关闭:

2019-12-06 13:59:26.115 - INFO  o.m.d.cluster - Exception in monitor thread while connecting to server 10.0.42.1:27017 
    com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:62)
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:126)
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.net.SocketTimeoutException: connect timed out
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:59)
    at com.mongodb.connection.SocketStream.open(SocketStream.java:57)
    ... 3 common frames omitted
2019-12-06 13:59:26.115 - INFO  o.m.d.cluster - Exception in monitor thread while connecting to server 10.0.42.2:27017 
    com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:62)
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:126)
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.net.SocketTimeoutException: connect timed out
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:59)
    at com.mongodb.connection.SocketStream.open(SocketStream.java:57)
    ... 3 common frames omitted

我们可以看到,现在它尝试直接连接到主实例和辅助实例本身,我什至没有告诉它IP地址在哪里。由于实例位于AWS EC2计算机上,因此无法直接连接到它。

如何在AWS EC2机器上连接MongoDB集群的主要实例?

0 个答案:

没有答案
相关问题