【发布时间】:2015-01-28 12:39:28
【问题描述】:
我正在试图弄清楚,如果其中一个节点出现故障,如何为我的 2 个节点集群设置参数,以便获得精确的副本... 使用此工具进行检查:http://www.ecyrd.com/cassandracalculator/
对于以下参数:
Cluster size: 2 / Replication Factor: 2 / Write Level: All / Read Level: One
它给了我结果:
- 您的读数一致
- 您可以在没有节点丢失的情况下幸存下来。
- 您确实是每次都从 1 个节点读取。
- 你真的是在写每次都写2个节点。
- 每个节点都保存您 100% 的数据。
我同意所有这些结果,除了一个,“你可以在没有节点丢失的情况下幸存下来”。 我不明白为什么集群无法从一个节点丢失中存活下来,如果一个节点死了,“Write: ALL”将写入唯一剩下的一个节点,不是吗? 然后当我恢复第二个节点时,它应该与第一个同步,并再次接受写入,不是吗?
如果我错了,谁能给我解释一下为什么?
编辑:
More Configuration 会给我同样的结果,除了持有 %:
Cluster size: 3 / Replication Factor: 2 / Write Level: All / Read Level: One
Cluster size: 3 / Replication Factor: 2 / Write Level: Quorum / Read Level: One
即使我尝试与读取保持一致,而不是写入:
Cluster size: 2 / Replication Factor: 2 / Write Level: One / Read Level: Quorum
每次它告诉我我不能在任何节点上遭受损失。
【问题讨论】:
-
只有 2 个节点的集群在实际生产 Cassandra 部署中是非常不寻常的。 RF 3 是更常见的 b/c,它允许在丢失一个节点的情况下进行仲裁读取和写入。
标签: cassandra cluster-computing