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
Cassandra跨集群的不同复制因子_Cassandra_Replication - Fatal编程技术网

Cassandra跨集群的不同复制因子

Cassandra跨集群的不同复制因子,cassandra,replication,Cassandra,Replication,同一群集的不同节点上是否可以有不同的复制设置? (所有DC具有相同的键空间/表,但复制设置不同) 我们希望DC1和DC2收集不同地理位置的传感器数据,并将这些数据发送到DC3。因此,DC3包含来自DC1+DC2的所有数据 但是,DC1和DC2不应包含彼此的数据(仅由本地客户端写入的数据) 在Cassandra中,是否可以通过在DCs上使用不同的键空间复制设置来实现这一点 在DC1上:'DC1':1,'DC3':1 在DC2上:“DC2”:1,“DC3”:1 在DC3上:“DC3”:1 使用网络

同一群集的不同节点上是否可以有不同的复制设置? (所有DC具有相同的键空间/表,但复制设置不同)

我们希望DC1和DC2收集不同地理位置的传感器数据,并将这些数据发送到DC3。因此,DC3包含来自DC1+DC2的所有数据

但是,DC1和DC2不应包含彼此的数据(仅由本地客户端写入的数据)

在Cassandra中,是否可以通过在DCs上使用不同的键空间复制设置来实现这一点

  • 在DC1上:
    'DC1':1,'DC3':1
  • 在DC2上:
    “DC2”:1,“DC3”:1
  • 在DC3上:
    “DC3”:1

    • 使用
      网络拓扑策略无法真正做到这一点。根据您希望在这方面投入多少精力,您可以实施自己的复制策略。我不认为这很常见,但Cassandra确实允许这样做,而且实现您想要的可能不会太困难(请看一个例子)

      如果您不想实施自己的策略,我建议使用以下配置创建2个键空间:

      CREATE KEYSPACE keyspace1
      WITH replication = {
          'class' : 'NetworkTopologyStrategy',
          'DC1' : 1,
          'DC3' : 1
      };
      
      CREATE KEYSPACE keyspace2
      WITH replication = {
          'class' : 'NetworkTopologyStrategy',
          'DC2' : 1,
          'DC3' : 1
      };
      
      然后根据客户端的位置,您可以使用任意一个键空间