这可能在卡桑德拉吗?

时间:2015-10-03 17:34:03

标签: cassandra cassandra-2.0

我想要在4台机器上复制数据。

其中3个是托管在数据中心的服务器,并且有一台开发机器在未完成开发时可以脱机。

3个数据中心服务器将成为所有数据的主要来源。开发机器不会是任何数据的主要来源。但它将拥有其他3台机器的所有数据。

当开发机器上线时,它将与其他节点同步,然后来自开发环境的所有查询将在开发机器中的Cassandra实例上运行。或者至少,我认为,我会从本地机器得到最快的响应。

如果可能的话,即使dev机器没有连接到互联网,我也希望能够在开发机器上对Cassandra实例运行查询(只读)。

2 个答案:

答案 0 :(得分:1)

我在这里考虑的是你有两个数据中心DC1有3个节点,DC2有1个节点本地节点。 考虑DC2中节点的停机时间,并相应地设置hintedhandoff的时间,如果down节点上线并且尚未标记为已死,它将尝试同步数据。

答案 1 :(得分:1)

这里有两个基本选项:

1)创建一个2数据中心集群,如Aftab所述,其中一个数据中心是开发节点。这将允许您在断开连接时使用LOCAL_ONE一致性查询它,它将按预期工作。我将完全禁用提示,并假设您需要在长时间断开连接时进行修复/重建。请注意,对此节点执行的写入将复制到生产中,因此您需要确保您的开发不会意外地进行任何意外删除/覆盖,或者您将在重新连接时复制这些内容。

2)保持dev服务器断开连接,并使用cassandra的批量加载工具sstableloader将数据从生产加载到dev。仅在必要时复制数据,并且仅在一个方向上复制数据。