Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/npm/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 如果复制系数为3,是否意味着数据中心需要4个节点?_Cassandra - Fatal编程技术网

Cassandra 如果复制系数为3,是否意味着数据中心需要4个节点?

Cassandra 如果复制系数为3,是否意味着数据中心需要4个节点?,cassandra,Cassandra,我设置键空间如下所示 CREATE KEYSPACE name_of_keyspace WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 3}; 如果我想遵循此键空间的规则,我是否需要在dc1中有3个或4个节点 我感到困惑的原因是有两种不同类型的节点,一种是协调节点,另一种是一般节点,当节点发生故障时可以选择。 我是否应该将此协调器节点作为常规节点的一部分包括在内,并在dc1中仅创建3个节点

我设置键空间如下所示

CREATE KEYSPACE name_of_keyspace WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 3};
如果我想遵循此键空间的规则,我是否需要在
dc1
中有3个或4个节点

我感到困惑的原因是有两种不同类型的节点,一种是协调节点,另一种是一般节点,当节点发生故障时可以选择。
我是否应该将此协调器节点作为常规节点的一部分包括在内,并在
dc1
中仅创建3个节点,还是创建4个节点来实现此功能?

在Cassandra中,所有节点都可以充当协调器。因此,对于需要协调器的请求,客户端连接到的节点将充当协调器


对于DC来说,3节点和4节点的RF是可以的,但除非您有一个额外节点想要达到的容量,否则它是不需要的。在我的一个集群中,我们有18个节点的容量,RF为3。这通常是缩放Cassandra的方式。

在查询时选择协调器节点。所有节点都具有相同的功能

使用rf 3运行群集并运行查询时,对于分区:

  • 如果使用一致性级别1进行读/写,则只需要向上一个节点
  • 如果使用仲裁或两个CL进行读/写,则需要两个节点
  • 如果使用全部或三个CL进行读/写,则为三个节点
请注意,读/写操作将发送给所有持有/应该写入数据的节点,但驱动程序将等待配置的级别

有关一致性级别的更多信息,请选中此项


因此,您可以使用rf 3运行一个3节点群集,并且根据您读取/写入的CL,您可以在0、1或2节点停机时生存。

谢谢@muru,这样更好吗?