【发布时间】:2019-04-17 17:02:36
【问题描述】:
我有一个在 Kubernetes 的 GCP 上运行的 3 节点集群。我能够转发端口并使用我的数据库工具连接到集群:
$ kubectl port-forward elassandra-0 9042
当我尝试从我的 Spring Boot 应用程序连接到 cassandra 集群时,我收到以下错误:
2018-11-14 17:43:36,339 INFO [5914] [localhost-startStop-1] c.d.d.c.Cluster [Cluster.java:1587] New Cassandra host /10.4.3.3:9042 added
2018-11-14 17:43:36,339 INFO [5914] [localhost-startStop-1] c.d.d.c.Cluster [Cluster.java:1587] New Cassandra host /10.4.2.4:9042 added
2018-11-14 17:43:36,340 INFO [5915] [localhost-startStop-1] c.d.d.c.Cluster [Cluster.java:1587] New Cassandra host /127.0.0.1:9042 added
2018-11-14 17:43:41,391 WARN [10966] [cluster1-nio-worker-2] c.d.d.c.HostConnectionPool [HostConnectionPool.java:184] Error creating connection to /10.4.2.4:9042
com.datastax.driver.core.exceptions.TransportException: [/10.4.2.4:9042] Cannot connect
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:167)
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:150)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121)
我正在尝试连接到 127.0.0.1:9042,其他主机正在被 spring-data 框架从集群中拉出。
我在这里做错了什么?
谢谢。
【问题讨论】:
-
您的应用正在 Kubernetes 中运行?
-
没有。在 kubernetes (ClusteIP: none) 上运行的本地连接工作正常。我正在尝试找到一种从外部连接的方法。例如用于调试目的。它通过端口转发连接到指定的本地主机,但是主机返回其他2个内部IP地址,无法从外部直接访问。
标签: cassandra kubernetes google-cloud-platform spring-data-cassandra