gpt4 book ai didi

cassandra - 为灾难恢复配置 Apache Cassandra

转载 作者:行者123 更新时间:2023-12-04 22:48:42 25 4
gpt4 key购买 nike

您如何配置 Apache Cassandra 以允许灾难恢复,以允许两个数据中心之一发生故障?

DataStax documentation谈论使用一种复制策略来确保至少将一个复制写入您的两个数据中心中的每一个。但是,一旦灾难真正发生,我看不出这有什么帮助。如果您切换到剩余的数据中心,您的所有写入都将失败,因为这些写入将无法复制到其他数据中心。

我猜你会希望你的软件在两种模式下运行:正常模式,写入必须在两个数据中心之间复制,以及灾难模式,它们不需要。但是改变复制策略似乎是不可能的。

我真正想要的是两个过度配置的数据中心,并且在正常操作期间使用两个数据中心的资源,但是当只有一个数据中心时,仅使用一个剩余数据中心的资源(性能降低)正在运作。

最佳答案

诀窍是改变通过 API 为写入提供的一致性设置,而不是改变复制因子。使用 LOCAL_QUORUM当只有一个数据中心可用时,灾难期间的写入设置。正常操作时使用 EACH_QUORUM以确保两个数据中心都有一份数据副本。读取可以使用 LOCAL_QUORUM每时每刻。

以下是 multiple data centers 的 Datastax 文档摘要和较旧但仍然与概念相关的 disaster recovery (0.7) .

使用两种一致性制作满足您需求的食谱LOCAL_QUORUMEACH_QUORUM .

Here, “local” means local to a single data center, while “each” means consistency is strictly maintained at the same level in each data center.



假设您有 2 个数据中心,其中一个严格用于灾难恢复,那么您可以将复制因子设置为...

3 for the primary write/read center, and two for the failover data center



现在,根据您的数据实际写入灾难恢复节点的重要性,您可以使用 EACH_QUORUM 或 LOCAL_QUORUM。假设您正在使用复制放置策略 NetworkTopologyStrategy (NTS) ,
LOCAL_QUORUM on writes 只会延迟客户端本地写入 DC1 并异步写入 DC2 中的恢复节点。
EACH_QUORUM将确保复制所有数据,但会延迟写入,直到两个 DC 都确认操作成功。

对于读取,最好只使用 LOCAL_QUORUM 来避免 inter-data center latency .

这种方法有一些问题!如果您选择在写入时使用 EACH_QUORUM,则会增加潜在的故障点(DC2 已关闭、DC1-DC2 链接已关闭、无法满足 DC1 法定人数)。

好处是一旦您的 DC1 出现故障,您就有了有效的 DC2 灾难恢复。另请注意,在第二个链接中,它讨论了用于正确路由 IP 的自定义告密者设置。

关于cassandra - 为灾难恢复配置 Apache Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com