Cassandra datastax 给出错误“所有主机尝试查询失败”

Posted

技术标签:

【中文标题】Cassandra datastax 给出错误“所有主机尝试查询失败”【英文标题】:Cassandra datastax gives error "All host(s) tried for query failed" 【发布时间】:2021-09-11 17:37:22 【问题描述】:

今天我在使用 datastax 连接到 cassandra 时遇到了一个问题。我得到了错误 “所有尝试查询的主机都失败了”。最终我发现这是由于 SSL 终止导致连接没有发生。

问题:

    我从 Tableplus 等本地客户端连接到 cassandra。我已将 SSL 设为“已禁用”,但我仍然能够连接。为什么我在使用 datastax 驱动程序时无法以相同的方式连接。

我的 Nodetool 状态如下所示

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.17.0.3  70.68 KiB  256          100.0%            cf65f26b-db8e-490b-bd38-ec8d74112b67  rack1

#
#

【问题讨论】:

您能否编辑您的问题以共享 cassandra 的 nodetool 状态?我正在通过同样的问题。我想我可以帮助你。您是否尝试做一个复制数据库? 你使用的是 Cassandra 的哪个版本? 你能显示所有的堆栈跟踪吗? 【参考方案1】:

感谢@Luciana 两位的参与。但这里最终对我有用。最初我没有空的clusterBuilder.withSSL();。但后来

之前

            Cluster.Builder clusterBuilder = Cluster.builder();
            if (sslEnabled) 
                clusterBuilder.withSSL(getSslOptions());
            

之后

            Cluster.Builder clusterBuilder = Cluster.builder();
            clusterBuilder.withSSL();
            if (sslEnabled) 
                clusterBuilder.withSSL(getSslOptions());
            

我通过 Datastax 文档找到了 https://docs.datastax.com/en/developer/java-driver/3.0/manual/ssl/

希望这会有所帮助。我并不声称这可以解决所有类似的错误,但这可能是可以解决此连接问题的原因之一。

【讨论】:

以上是关于Cassandra datastax 给出错误“所有主机尝试查询失败”的主要内容,如果未能解决你的问题,请参考以下文章

将单个令牌节点添加到现有的 datastax cassandra 集群和数据传输不起作用

NoSuchMethodException 使用 datastax cassandra 映射器

使用 datastax 进行错误的 SOlr 索引。从 1 个节点扩展到 2 个 cassandra 节点和 1 个搜索节点

cassandra datastax 编写生成的代码时出现意外错误:java.lang.NullPointerException

NoClassDefFoundError - Cassandra 的 datastax java 驱动程序

Datastax cassandra-driver (python) 导入失败