目前,我们必须建立我们的Cassandra集群,以支持两个数据中心。我们有一个大致的想法,数据库集群可以设置如下图。
根据这张照片。
假设我们有6个数据库节点。
关于最下面的那个,
1.3数据中心节点1。
2.3数据中心节点2。
3.创建一个包含所有节点的集群。
4.在创建密钥空间时,可以使用networktoplogystrategy和复制因子dc1:2、dc2:2实现跨数据中心的数据复制。
重新加载最上面的一个,
1.3集群1中的节点,数据中心1。
2.3集群2中的节点,数据中心2。
现在,我有一个问题,如何在集群1和集群2或者数据中心1和数据中心2之间建立复制机制。
谢谢。
1条答案
按热度按时间qacovj5a1#
你的底图,从你所描述的,是真正的Cassandra模型。一个集群包含您所需的任意多个dc。您可以随意配置dcs之间的复制(通过密钥空间)。如果您有两个独立的集群,它们不会相互复制,因为它们是完全独立的数据库。下面是Cassandra的工作原理,这就是你所需要的。每个节点都被视为一个主节点(即cassandra中没有主节点-每个节点都是相等的)。
只需在图表中添加一个注解:使用一个rf=2的3节点dc,在提供一些冗余的同时,去掉了一个最常见的客户端一致性选项-local\u quorum。原因是因为local\u quorum为2=all—这意味着如果您选择了该选项,您已经完全牺牲了某些数据的可用性组件(这意味着“local”dc上的所有节点必须始终可用,以确保不会发生错误)。如果您计划选择local\u quorum作为一个选项,那么您应该更改rf=3,允许单个节点不可用而没有问题。
-吉姆