我有两个复制因子= 1的节点,这意味着每个节点都有一组数据副本。
基于以上描述,当我使用murmur3partitioner时,
我的目的是创建一个副本,并且两个节点都应该独立地服务请求,而不需要相互通信。
答案 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节点。您可以提供一个端点,但它会通过八卦找到另一个端点,并根据需要使用它。