0

目前,我们必须设置我们的 Cassandra 集群来支持两个数据中心。我们有一个粗略的想法,数据库集群可以设置如下图。

在此处输入图像描述

根据这张图。

假设我们有 6 个数据库节点。

至于最底层的,

1.3 数据中心 1 中的节点。

2.3 数据中心 2 中的节点。

3.创建一个集群,包含所有节点。

4.创建密钥空间时,可以使用NetWorkToplogyStrategy和复制因子DC1:2、DC2:2实现跨数据中心的数据复制。

重温第一,

集群 1 中的 1.3 个节点,数据中心 1。

2.3 集群 2 中的节点,数据中心 2。

现在,我有一个问题,如何设置集群 1 和集群 2 或数据中心 1 和数据中心 2 之间的复制机制。

谢谢。

4

1 回答 1

1

根据您的描述,您的底部图片实际上是 cassandra 模型。一个集群,包含您需要的尽可能多的 DC。您可以随意配置 DC 之间的复制(通过密钥空间)。如果您有 2 个单独的集群,它们不会相互复制,因为它们是完全独立的数据库。下面的图片是 Cassandra 的工作原理,这就是您所需要的。每个节点都被视为一个主节点(即 Cassandra 中没有主节点 - 每个节点都是相等的)。

只是在您的图表中添加一个注释:拥有一个 RF=2 的 3 节点 DC,虽然提供了一些冗余,但带走了最常见的客户端一致性选项之一 - LOCAL_QUORUM。原因是因为 2 的 LOCAL_QUORUM 是 2 = ALL - 这意味着如果您选择了,您已经完全牺牲了某些数据的可用性组件(这意味着“本地”DC 上的所有节点必须始终可用以确保没有错误发生)。如果您计划选择 LOCAL_QUORUM 作为选项,则应更改 RF=3,允许单个节点不可用而不会出现问题。

-吉姆

于 2019-12-20T13:20:44.770 回答