Cassandra集群可以使用2个节点吗?

时间:2018-02-08 17:43:01

标签: cassandra cassandra-node-driver

我有两个复制因子= 1的节点,这意味着每个节点都有一组数据副本。

基于以上描述,当我使用murmur3partitioner时,

  1. 节点之间是否共享数据?如节点1中50%的数据和节点2中50%的数据?
  2. 当我向节点1读取请求时,它是否会在内部与节点2连接以保持一致性?
  3. 我的目的是创建一个副本,并且两个节点都应该独立地服务请求,而不需要相互通信。

1 个答案:

答案 0 :(得分:4)

首先,请尝试每个帖子只询问一个问题。

  

我有两个复制因子= 1的节点,这意味着每个节点都有一组数据副本。

不正确的。 RF = 1表示整个群集将包含1份数据。

  

节点之间会共享数据吗?如节点1中50%的数据和节点2中50%的数据?

这就是它会尝试做的事情。请注意,它可能不准确。它可能就像49/51-ish。

  

当我向节点1读取请求时,它是否会在内部与节点2连接以保持一致性?

RF = 1,不会。根据分区键的散列标记值,它将仅定向到包含数据的节点。

例如,如果RF = 2有2个节点,则取决于为您的操作设置的一致性级别。在ONE阅读将始终只读取一个副本。在QUORUM读取将始终从具有2个节点的2个副本中读取(毕竟,2的QUORUM等于2)。在ALL阅读将需要所有副本的响应,并且如果他们不同意则启动读取修复。

需要注意的重要事项,但是您无法强制驱动程序连接到特定的Cassandra节点。您可以提供一个端点,但它会通过八卦找到另一个端点,并根据需要使用它。