gpt4 book ai didi

c++ - 当 3 个节点中的 2 个出现故障时,无法在 Cassandra 中写入条目

转载 作者:行者123 更新时间:2023-11-30 05:05:57 25 4
gpt4 key购买 nike

我正在通过 C++ 在 Cassandra 中插入数据。我有 2 个数据中心和分布在 2 个数据中心(dc1 和 dc2)中的总共 3 个节点。因为我在做一些实验,所以我在两个节点上停止了 Cassandra。现在,当我尝试将数据写入剩余的一个节点时,出现“无可用主机”之类的错误。既然在 C++ 程序中,我没有提到写语句的任何一致性,那为什么它不起作用。我读过默认的写入一致性是本地一致性,因此即使 3 个节点中只有一个节点启动,我也应该能够写入数据。

dc1 有 2 个节点,dc 2 有 1 个节点。复制策略:网络拓扑,dc1:2,dc2:1 Cassandra :3.0.14瑞尔 6

编辑:在我更改了两件事并重新启动我的集群后,问题得到了解决:1. 我配置了 cassandra-topology.properties。最初它没有设置正确的值。2. 我同步了 3 个节点之间的时间。我不知道哪一个(如果不是两个)解决了问题。

最佳答案

对于这个问题,RF 无关紧要。这取决于写入 CL。我假设您的写入 CL 是 LOCAL_ONE。由于您只有 1 个上节点,它可能在 dc1 或 dc2 上。如果你的up-node在dc1,因为dc1有两个节点,hash-ring是这两个节点共享的。因此,Cassandra 应该确定写入 dc1 中的哪个节点。 Cassandra 计算数据分区键的哈希值。如果上层节点是该分区的所有者,则写入成功,否则写入失败。

如果你的up-node在dc2,因为dc2只有1个节点,那个节点拥有所有的数据。所以写应该总是成功的。

关于c++ - 当 3 个节点中的 2 个出现故障时,无法在 Cassandra 中写入条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48145621/

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