首页 > 解决方案 > cassandra 数据中心能否仅配置为复制接收器?

问题描述

假设我们有 2 个 cassandra 数据中心。其中一个是生产环境,安全性好,另一个是测试环境,更容易破解,因此不可信

我们想要数据复制,但只能从生产环境传播到测试环境,反之亦然。

有没有办法将一个数据中心配置为从站:不接收来自另一个数据中心的复制数据,并恢复不受信任的更改?它应该是一个只读实例,它只接收来自其他数据中心的数据。

万一有人破坏了测试环境,我们不希望生产环境接收任何被操纵的数据。目标是在复制期间将测试环境更改恢复到生产环境。

标签: cassandra

解决方案


不,这不可能直接 - 在 Cassandra 中,对键空间所做的更改会传播到所有方面。

您可以通过对 prod 和 test 使用单独的集群来尝试不同的选项:

  • 实现代码以读取CDC 文件并应用于测试集群 - 这无助于从测试环境中删除数据,因为这种方法仅应用更改。
  • 使用DataStax 高级复制(使用类似方法)
  • 使用SSTableLoader定期重播从生产到测试的数据- 它将重播所有数据,因此有助于删除测试中的数据。但是,如果您有大量数据,则可能需要很长时间。

推荐阅读