AllNodesFailedException:无法到达任何联系点

我通过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

Java代码:


InetAddress addr = InetAddress.getByName("172.17.0.2");

InetSocketAddress addrSoc = new InetSocketAddress(addr,19041);

CqlSession session = CqlSession.builder().addContactPoint(addrSoc).build();

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


错误 :


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...] 初始化查询启动: 写入错误)


汪汪一只猫
浏览 123回答 3
3回答

慕田峪7331174

面临同样的问题。通过在配置类中将节点 ip(172.18.0.2) 更改为全局 ip '127.0.0.1' 来解决。我使用 docker-compose 命令来运行 cassandra。请查看我的 docker-compose.yml 文件:version: '3'services: n1:  build: .  image: cassandra-with-cqlshrc  networks:   - cluster  ports:   - "9042:9042"networks: cluster:我的 Java 中的 CassandraConfiguration 文件:@Configuration@EnableCassandraRepositoriespublic class CassandraConfiguration extends AbstractCassandraConfiguration {    @Override      public String getContactPoints() {        return "127.0.0.1";      }      @Override      protected String getKeyspaceName() {        return "stockmarket";      }           @Override      protected int getPort() {          return 9042;      }}

qq_花开花谢_0

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

皈依舞

所有 DataStax 驱动程序都从内置数据中心故障转移和来自接触点的本地推理转向。如果使用 Spring/Springboot,则必须指定数据中心名称。将此行添加到您的 application.properties 中: spring.data.cassandra.local-datacenter=datacenter1对于数据中心的名称,“datacenter1”是默认名称。您可以在 cqlsh 中使用以下命令找到数据中心的名称:select data_center from system.local;另外,不要忘记关闭 cqlsh 会话,因为它可能会导致在下一个请求中到达单节点 cassandra 集群时出现一些问题。Session.close()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java