Cassandra跨集群的不同复制因子
同一群集的不同节点上是否可以有不同的复制设置? (所有DC具有相同的键空间/表,但复制设置不同) 我们希望DC1和DC2收集不同地理位置的传感器数据,并将这些数据发送到DC3。因此,DC3包含来自DC1+DC2的所有数据 但是,DC1和DC2不应包含彼此的数据(仅由本地客户端写入的数据) 在Cassandra中,是否可以通过在DCs上使用不同的键空间复制设置来实现这一点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 使用网络
- 在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
};
然后根据客户端的位置,您可以使用任意一个键空间