gpt4 book ai didi

java - AllNodesFailedException : Could not reach any contact point

转载 作者:行者123 更新时间:2023-12-02 00:28:59 27 4
gpt4 key购买 nike

我通过docker在三个数据中心(DC1、DC2和DC3)中设置了三个Cassandra节点(cas1、cas2和cas3)。我想使用 Java API 在 cas1 建立 session ,但连接失败并抛出异常。

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

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();

预期结果: session 应该已建立。

错误:

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

最佳答案

遇到同样的问题。通过在配置类中将节点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
@EnableCassandraRepositories
public 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;
}
}

关于java - AllNodesFailedException : Could not reach any contact point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com