【发布时间】:2018-06-17 03:44:35
【问题描述】:
我通过 C++ 在 Cassandra 中插入数据。我有 2 个数据中心,共有 3 个节点分布在 2 个数据中心(dc1 和 dc2)中。因为我正在做一些实验,所以我在 2 个节点上停止了 Cassandra。现在,当我尝试将数据写入剩余的一个节点时,我会收到诸如“没有可用主机”之类的错误。由于在 C++ 程序中,我没有提到 write 语句的任何一致性,那么为什么它不起作用。我读过默认写入一致性是本地一致性,因此即使只有三分之一的节点启动,我也应该能够写入数据。
dc1 有 2 个节点,dc 2 有 1 个节点。 复制策略:网络拓扑,dc1:2,dc2:1 卡桑德拉:3.0.14 RHEL 6
编辑:在我更改了两件事并重新启动集群后,问题得到了解决: 1.我配置了cassandra-topology.properties。最初它没有设置正确的值。 2.我同步了3个节点之间的时间。 我不知道哪一个(如果不是两个)解决了这个问题。
【问题讨论】:
-
你使用什么复制因子?
-
它可能从架构级别采用默认一致性级别。请与您的 CQL 语句分享更多详细信息。
-
你关闭了哪两个节点?
-
我关闭了哪 2 个节点并不重要。如果只有一个节点启动,即需要 2 个节点才能输入数据,我将无法输入数据。
-
@VishalSharma 但是您在每个 DC 上使用什么射频?
标签: c++ cassandra cassandra-3.0