添加具有一个节点的数据中心以备份现有节点
Add datacenter with one node to backup existing one
我已经有一个具有 3 个节点(复制因子 2)的工作数据中心。我想添加另一个只有一个节点的数据中心,以便从现有数据中心获取所有备份数据。最终解决方案:
dc1: 3 nodes (2 rf)
dc2: 1 node (1 rf)
然后我的应用程序将只连接到 dc1 节点并发送数据。如果 dc1 发生故障,我可以从位于不同位置的另一台物理机器上的 dc2 恢复数据。我还可以将 dc2 用于 AI 查询或其他一些任务。我是 cassandra 配置的新手,所以我想知道我的想法是否没有犯错。我打算使用此配置文档来添加新的 dc:https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/operations/opsAddDCToCluster.html
有什么我应该记住的才能让它工作或更简单的数据备份解决方案吗?
更新:它不仅是一个备份,我们也不会在 dc1 不可用(例如停电)时使用这第二个 DC 来连接应用程序。
更新:dc2 是 运行,我在将数据从一个 dc 复制到另一个时遇到了一些问题,nodetool 状态没有显示 2 个 dc,但是在修复端口 7000 的防火墙规则后,我设法连接了两个 dc并在他们之间共享数据。
使用这种方法,您的单个节点将获得比其他节点多 2 倍的流量。此外,它可能会给 dc1 中的节点增加负载,因为当 dc2
中的节点不可用时,它们将需要收集提示等。如果您只需要备份,请设置类似 medusa 的东西,并将数据存储在便宜的环境中,例如 S3 - 当然,如果您丢失了整个 DC,则需要时间来恢复。
但实际上,您需要考虑您的 high-availability 策略 - 如果您失去主要 DC,您的客户会怎样?等到恢复是否至关重要,或者您真的需要完全容错吗?我建议阅读 DataStax 的 Designing Fault-Tolerant Applications with DataStax and Apache Cassandra™ 白皮书 - 它解释了设计真正容错应用程序的细节。
我已经有一个具有 3 个节点(复制因子 2)的工作数据中心。我想添加另一个只有一个节点的数据中心,以便从现有数据中心获取所有备份数据。最终解决方案:
dc1: 3 nodes (2 rf)
dc2: 1 node (1 rf)
然后我的应用程序将只连接到 dc1 节点并发送数据。如果 dc1 发生故障,我可以从位于不同位置的另一台物理机器上的 dc2 恢复数据。我还可以将 dc2 用于 AI 查询或其他一些任务。我是 cassandra 配置的新手,所以我想知道我的想法是否没有犯错。我打算使用此配置文档来添加新的 dc:https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/operations/opsAddDCToCluster.html 有什么我应该记住的才能让它工作或更简单的数据备份解决方案吗?
更新:它不仅是一个备份,我们也不会在 dc1 不可用(例如停电)时使用这第二个 DC 来连接应用程序。
更新:dc2 是 运行,我在将数据从一个 dc 复制到另一个时遇到了一些问题,nodetool 状态没有显示 2 个 dc,但是在修复端口 7000 的防火墙规则后,我设法连接了两个 dc并在他们之间共享数据。
使用这种方法,您的单个节点将获得比其他节点多 2 倍的流量。此外,它可能会给 dc1 中的节点增加负载,因为当 dc2
中的节点不可用时,它们将需要收集提示等。如果您只需要备份,请设置类似 medusa 的东西,并将数据存储在便宜的环境中,例如 S3 - 当然,如果您丢失了整个 DC,则需要时间来恢复。
但实际上,您需要考虑您的 high-availability 策略 - 如果您失去主要 DC,您的客户会怎样?等到恢复是否至关重要,或者您真的需要完全容错吗?我建议阅读 DataStax 的 Designing Fault-Tolerant Applications with DataStax and Apache Cassandra™ 白皮书 - 它解释了设计真正容错应用程序的细节。