【问题标题】:How does cassandra reacts to a region failure in Multi-Region setupcassandra 如何对多区域设置中的区域故障做出反应
【发布时间】:2020-05-18 23:47:32
【问题描述】:

我正在尝试了解多区域设置中的 cassandra。 假设我在 3 个 AWS 区域(A、B 和 C)中分别设置了一个 Cassandra 集群,并且如果一个区域出现故障(区域 C)。 整个区域的中断如何影响 Cassandra 查询。

  1. 如果我的读写配置为 CL = LOCAL_QUORUM,那么中断会影响区域 A 和 B 中的事务。
  2. 如果读取和写入位于 CL = EACH_QUORUM,则区域 A 和 B 中的读取/写入会失败。
  3. 如果 C 区正在进行计划内维护怎么办?

【问题讨论】:

    标签: amazon-web-services cassandra nosql cassandra-2.0 cassandra-3.0


    【解决方案1】:

    我建议您查看 DSE Architecture Guide,了解 Cassandra 的工作原理。您需要记住几件事,例如,所有写入都发送到所有 DC 中的所有副本,与一致性级别无关,并且当节点在短时间内(默认情况下小于 3 小时)关闭时,其他节点将收集这些 -称为提示,将在节点返回时重播更改。

    中断的影响取决于您使用的一致性级别,因此回答您的问题:

    1. 不,它不应该影响 DC A 和 B,直到您将 read_repair_chancedclocal_repair_chance 设置为非零 - 在以后的情况下,您可能会点击 CASSANDRA-9753,这可能会导致向远程 DC 发送请求;
    2. 是的,读取和写入将失败并显示EACH_QUORUM。但是您可以将QUORUM 与 3 个 DC 一起使用(当然取决于每个 DC 中的 RF),并允许一个完全下降;
    3. 如果你关闭整个区域,它与失败相同,但如果你一台机器做,那么它可能会工作。

    【讨论】:

    • 感谢您的回复。对于主动-主动、多区域设置,这种行为是否会保持不变,其中 cassandra 环分别部署在不同的区域并通过对等互连在环之间复制数据。
    • 单独的环是什么意思?每个 DC 都是集群内的一个独立环
    • 单独的 Ring 是指每个区域一个独立的集群。区域中的每个集群都是对等的,因此数据在所有区域的集群上同步。我指的是aws.amazon.com/blogs/big-data/… Active-Active 多区域设置。如果您指的是相同的设置,请告诉我。谢谢!
    • 在这种情况下,它是一个单一的集群。独立集群只能与 DSE 高级复制之类的东西同步
    • 那么在这种情况下(主动-主动多区域设置)是否会使用 CL=EACH_QUORUM 写入每个远程区域?感谢您回答我的幼稚问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2017-02-14
    相关资源
    最近更新 更多