如何通过 docker 将我的 Java 应用程序连接到 Cassandra 运行?
How to connect my Java application to Cassandra running through docker?
我有以下 java 代码:
String serverIP = "127.0.0.1";
String keyspace = "testkeyspace";
Cluster cluster = Cluster.builder().addContactPoints(serverIP).build();
Session session = cluster.connect(keyspace);
我正在尝试使用它来检查我与 Cassandra 的连接。
我在自己的机器上本地安装了Cassandra,连接成功。
我的 Maven 项目正在使用以下
spring-data-cassandra
2.0.6.RELEASE
但是,当我尝试通过 docker 将我的 java 应用程序连接到 Cassandra 运行 时(我的本地 cassandra 已停止),我遇到以下错误:
All host(s) tried for query failed (tried: /127.0.0.1:9042
(com.datastax.driver.core.exceptions.TransportException:
[/127.0.0.1:9042] Cannot connect))
我不知道我的 IP 是否有误,但在我的 docker CQLSH 上,每当我打开我的 CQLSH 时,都会显示以下消息:
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help.
请帮忙,我一定是漏掉了什么。谢谢!
只需在此处添加我的回答,因为它已被接受为评论以帮助其他人解决同样的问题。
您应该将您的 Cassandra Docker 容器端口公开给本地主机:
docker run -p 9042:9042 cassandra:latest
现在应该可以在 localhost:9042
上访问 Cassandra
我有以下 java 代码:
String serverIP = "127.0.0.1";
String keyspace = "testkeyspace";
Cluster cluster = Cluster.builder().addContactPoints(serverIP).build();
Session session = cluster.connect(keyspace);
我正在尝试使用它来检查我与 Cassandra 的连接。
我在自己的机器上本地安装了Cassandra,连接成功。 我的 Maven 项目正在使用以下
spring-data-cassandra 2.0.6.RELEASE
但是,当我尝试通过 docker 将我的 java 应用程序连接到 Cassandra 运行 时(我的本地 cassandra 已停止),我遇到以下错误:
All host(s) tried for query failed (tried: /127.0.0.1:9042 (com.datastax.driver.core.exceptions.TransportException: [/127.0.0.1:9042] Cannot connect))
我不知道我的 IP 是否有误,但在我的 docker CQLSH 上,每当我打开我的 CQLSH 时,都会显示以下消息:
Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help.
请帮忙,我一定是漏掉了什么。谢谢!
只需在此处添加我的回答,因为它已被接受为评论以帮助其他人解决同样的问题。
您应该将您的 Cassandra Docker 容器端口公开给本地主机:
docker run -p 9042:9042 cassandra:latest
现在应该可以在 localhost:9042