AllNodesFailedException:无法到达任何联系点

Cur*_*son 6 java cassandra docker

我通过docker在三个数据中心(DC1、DC2和DC3)中设置了三个Cassandra节点(cas1、cas2和cas3)。我想使用 Java API 在 cas1 建立会话,但它无法连接并引发异常。

我尝试过手动设置端口并寻找可用的解决方案,但它们不起作用。

cas1创建:

docker run --name cas1 -p 19041:9042 -e CASSANDRA_CLUSTER_NAME=MyCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=DC1 -e CASSANDRA_RACK=RAC1 -d cassandra
Run Code Online (Sandbox Code Playgroud)

Java代码:

InetAddress addr = InetAddress.getByName("172.17.0.2");
InetSocketAddress addrSoc = new InetSocketAddress(addr,19041);
CqlSession session = CqlSession.builder().addContactPoint(addrSoc).build();
Run Code Online (Sandbox Code Playgroud)

预期结果:会话应该已建立。

错误 :

datastax.oss.driver.api.core.AllNodesFailedException:无法到达任何联系点,请确保您提供了有效的地址(显示前 1 个,使用 getErrors() 了解更多信息:com.datastax.oss.driver.internal.core .metadata.DefaultNode@605c5ab0(null,/172.17.0.2:19041): com.datastax.oss.driver.api.core.connection.ConnectionInitException: [s0|control|connecting...] 初始化查询启动: 写入错误)

Cur*_*son 2

有效。我使用 IP:127.0.0.1 而不是全局 IP 和端口 19041(我明确配置的)并且它成功连接。