【发布时间】:2022-11-09 06:52:07
【问题描述】:
我有一个 Cassandra 集群,在 2 个数据中心中有 8 个节点,分别在 DC1 和 DC2 中有 4-4 个节点。
我创建了一个键空间:
CREATE KEYSPACE mykeyspace
WITH REPLICATION = {
'class' : 'NetworkTopologyStrategy',
'DC1' : 2,
'DC2' : 2,
};
据我了解,DC1 和 DC2 都将拥有所有数据,换句话说,如果整个 DC1 离线,DC2 将能够提供所有数据。
问题
我们应该说基于前面的事实,DC1 和 DC2 本身就是一个“完整”的环吗? (关于整个哈希 -2^63-1 .. +2^63 将由 DC1 上的节点呈现,DC2 也是如此)
我为什么要问这个?
我的回答是否定的,这仍然是一个集群,所以一个环,不管有两个节点子集包含所有数据。然而,许多图像和插图用两个“圆圈”表示两个数据中心中的节点,这暗示了两个“环”一词。 (显然不是两个集群)
参见例如:
DataStax: Multiple datacenter write requests
PS:如果可能,请不要将一致性级别带到图片中。我了解节点间通信工作流程取决于操作是写入还是读取,还取决于一致性级别。
一个取决于答案的实际问题:
在 DC1 num_tokens: 256 中表示所有节点,在 DC2 num_tokens: 32 中表示所有节点。如果 8 个节点在一个令牌环中,这些数字将彼此相关,但如果 DC1 和 DC2 是两个独立的令牌环,则这些数字(256 和 32)彼此无关......
【问题讨论】:
标签: cassandra replication