cassandra - cassandra 数据中心能否仅配置为复制接收器?
问题描述
假设我们有 2 个 cassandra 数据中心。其中一个是生产环境,安全性好,另一个是测试环境,更容易破解,因此不可信。
我们想要数据复制,但只能从生产环境传播到测试环境,反之亦然。
有没有办法将一个数据中心配置为从站:不接收来自另一个数据中心的复制数据,并恢复不受信任的更改?它应该是一个只读实例,它只接收来自其他数据中心的数据。
万一有人破坏了测试环境,我们不希望生产环境接收任何被操纵的数据。目标是在复制期间将测试环境更改恢复到生产环境。
解决方案
不,这不可能直接 - 在 Cassandra 中,对键空间所做的更改会传播到所有方面。
您可以通过对 prod 和 test 使用单独的集群来尝试不同的选项:
- 实现代码以读取CDC 文件并应用于测试集群 - 这无助于从测试环境中删除数据,因为这种方法仅应用更改。
- 使用DataStax 高级复制(使用类似方法)
- 使用SSTableLoader定期重播从生产到测试的数据- 它将重播所有数据,因此有助于删除测试中的数据。但是,如果您有大量数据,则可能需要很长时间。
推荐阅读
- dynamic - 自校正概率分布 - 保持随机性,同时将每个结果的频率吸引到其概率
- transactions - iOS Swift:从 Apple Wallet 中检索交易列表
- python-3.x - 计算纬度和经度的欧几里得距离 - Pandas DataFrame Python
- c# - 在 Where 子句中带有“.Any”的动态 Linq(C# / .Net Core / EF Core)
- javascript - Node.js 集群架构:如何扩展 master worker
- android - Fileobserver 的 onevent 方法触发但我如何在删除任何文件之前获取文件
- python - Python按键值列表对字典进行排序
- visual-studio-code - 使用 Azure 应用服务部署 Aurelia 应用
- asp.net-core - 从特权容器更改主机 sysctl 参数
- php - 调用未定义的方法 Cake\ORM\Entity::query() CakePhp