2和3节点Cassandra集群设置

时间:2017-11-13 14:45:03

标签: cassandra

我有2个问题。

1-我需要2个节点集群。我必须写&读取1个节点是否消失 我想我需要=复制因子:2一致性:1
但它肯定不应该是任何数据的丢失。

2-我需要3个节点集群,节点可能会随着时间的推移而增加。我应该可以使用此设置添加更多节点 我想我需要=复制因子:3一致性:2

问题是:我对这种配置是否正确?

谢谢你的回答。

2 个答案:

答案 0 :(得分:3)

<强> tldr;使用3节点群集,写入/读取仲裁。

请注意:Write Consistency + Read Consistency > Replication factor以确保您的数据一致。

您也可以同时使用3节点群集。或者,在您的第一个设置中(2个节点)与1个节点&#39;群集相同。因为您要么写入ALL,要么您的阅读不会保持一致。

设置1:

对于RF 2中的设置1,您需要:

  • Write(2) + Read(1)如果某个节点出现故障,您将无法再写入群集。
  • Read(2) + write(1)如果某个节点出现故障,您将无法再从群集中读取数据,并且您已丢失数据。
  • Write(2) + Read(2)与3节点集群相同。为什么2?

这两者都不是理想的,并且2节点集群在1节点集群上的唯一优势就是#c>如果你要写信给所有人,至少你不会在节点死亡时丢失数据。

设置2:

理想情况下,您可以使用法定人数,否则您更有可能遭受停电。

  • Write(2) + Read(2) > RF Quorum(选项1)使1个节点死亡,您的群集正常运行。
  • Write(3) + Read(1) > RF写入3允许您只读取1个节点,如果节点断开连接,则会以写入失败为代价加速读取。
  • Write(1) + Read(3) > RF阅读3加速写入,但会在节点出现故障时丢失数据。

答案 1 :(得分:0)

  1. 您应该记住,每台服务器都将保留100%的数据。所以在速度方面你可能不会获得太多收益。否则,读取和写入的CL均为1不会导致数据丢失。另外,如果1个节点出现故障并将其启动,请不要忘记提示。

  2. 对于这个你也可以使用QUORUM。这意味着副本中的一半加上1应该响应操作。

  3. 另外,我建议您阅读Configuring data consistencyReplication, High Availability and Consistency in Cassandra