具有多个数据中心时的Cassandra复制因子

时间:2012-09-22 14:55:54

标签: cassandra

我很难理解Cassandra中的复制因子。 在文档中,它说:“群集中的副本总数通常被称为复制因子”。 另一方面,在同一文档中,它说“NetworkTopologyStrategy允许您指定每个数据中心需要多少个副本”。 那么,如果我有两个使用NetworkTopologyStrategy的数据中心,复制因子为2意味着我将在每个数据中心拥有2个副本,或者整个群集中有2个副本?

谢谢。

2 个答案:

答案 0 :(得分:11)

使用NetworkTopologyStrategy时,您可以使用strategy_options:{data-center-name}={rep-factor-value}而不是全局strategy_options:replication_factor={rep-factor-value}在每个数据中心的基础上指定复制因子。

以下是改编自http://www.datastax.com/docs/1.0/references/cql/CREATE_KEYSPACE

的具体示例
CREATE KEYSPACE Excalibur WITH strategy_class = 'NetworkTopologyStrategy'
  AND strategy_options:DC1 = 2 AND strategy_options:DC2 = 2;

在该示例中,任何给定列将总共存储在4个节点上,每个数据中心存储2个。

答案 1 :(得分:3)

复制因子基本上是您希望拥有的副本数量(附加副本)。

要记住的一件事是它始终声明“复制品数量不应超过节点数”。所以我有2个节点你不应该有3个复制因子。