如何使用Cassandra复制因子1管理节点故障?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Cassandra复制因子1管理节点故障?相关的知识,希望对你有一定的参考价值。

我有一个三节点Cassandra(DSE)集群,我不关心数据丢失,因此我将RF设置为1.我想知道如果节点出现故障,Cassandra将如何响应读/写请求(我有CL =现在我的请求中的所有内容)。

理想情况下,如果数据存在,我希望这些请求成功 - 只是在剩余的可用节点上,直到我替换死节点。这个密钥空间本质上是一个非常大的缓存;如果发生丢失,我可以替换任何数据。

答案

(免责声明:我是ScyllaDB员工)

假设您的分区键足够独特,当使用RF = 1时,您的3个节点中的每一个都包含1/3的数据。顺便说一句,在这种情况下,CL = ONE / ALL基本上是相同的,因为您的数据只有1个副本,没有高可用性(HA)。

来自2个节点的“现有”数据请求将成功。尽管如此,当3个节点中的一个节点关闭时,1/3的客户端请求(对于现有数据)将不会成功,因为基本上1/3的数据不可用,直到down节点出现(请注意nodetool repair当使用RF = 1)时无关紧要,所以我想从快照恢复(如果你有一个可用)是唯一的选择。

当节点关闭时,一旦执行nodetool decommission,令牌范围将在2个节点之间重新分配,但这仅适用于新的写入和读取。

你可以在这里阅读更多关于戒指架构的信息:http://docs.scylladb.com/architecture/ringarchitecture/

以上是关于如何使用Cassandra复制因子1管理节点故障?的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra复制因子:需要节点具有完整的报告数据

2 节点 Cassandra 集群中的故障转移和复制

尽管复制因子为 3 的 QUORUM 一致性级别,Cassandra 仍不一致

如何在节点关闭时平衡 cassandra 集群

副本存储在cassandra环中的哪个节点?

如何修复cassandra节点