我目前在一个位置有一个3节点集群(让我们称之为Main),我想添加两个新位置(比如说remote1和remote2)。
我试图解决的用例是某种日志记录,我希望remote1和remote2能够快速可靠地记录一些数据。所以我在每个远程位置选择了3个新节点,我将继续使用LOCAL_QUORUM
,然后将数据复制到主要位置,以便其他应用程序可以读取。
我的问题是,如果两个远程位置都写在同一列系列中,复制因子将是{ 'remote1': 3, 'remote2': 3, 'Main': 1 }
,但是来自remote1的数据将被复制到remote2,反之亦然,这是我不想要的。
一种解决方案是拥有两个不同的列族,每个列族都具有{ 'remoteX': 3, 'Main': 1 }
的复制因子,但最终我的数据被拆分并且不易读取。
还有另一种方法来实现这个目标吗?
答案 0 :(得分:2)
不,没有办法让cassandra中的数据中心具有一个带有一个密钥空间的“hub and spoke”持久性策略。如果您不希望数据持久存储到所有数据中心,则必须使用多个键空间。一个是remote1和main,另一个是remote2和main。