cassandra 如何对多区域设置中的区域故障做出反应
How does cassandra reacts to a region failure in Multi-Region setup
我正在尝试了解多区域设置中的 cassandra。
假设我在 3 个 AWS 区域(A、B 和 C)中分别设置了一个 Cassandra 集群,如果某个区域出现故障(区域 C)。
整个地区的中断如何影响 Cassandra 查询。
- 如果我的读取和写入配置为 CL = LOCAL_QUORUM 中断会影响区域 A 和 B 中的事务。
- 如果读写都在 CL = EACH_QUORUM,区域 A 和 B 中 reads/writes 会失败吗?
- 如果区域 C 正在进行计划维护怎么办?
我建议您查看涵盖 Cassandra 工作原理的 DSE Architecture Guide。您需要记住几件事,例如,所有写入都发送到所有 DC 中的所有副本,与一致性级别无关,并且当节点短时间(默认情况下小于 3 小时)停机时,其他节点将收集 -称为提示,将在节点返回时重播更改。
中断的影响将取决于您使用的一致性级别,因此回答您的问题:
- 不,它不应该影响 DC A 和 B,直到你将
read_repair_chance
或 dclocal_repair_chance
设置为非零 - 在以后的情况下你可能会点击 CASSANDRA-9753,那可能导致向远程 DC 发送请求;
- 是的,读写将失败
EACH_QUORUM
。但是你可以使用 QUORUM
与 3 个 DC(当然取决于每个 DC 中的 RF),并允许一个完全下降;
- 关闭整个区域和失败是一样的,但是如果你一台一台地做,那么它可能会成功。
我正在尝试了解多区域设置中的 cassandra。 假设我在 3 个 AWS 区域(A、B 和 C)中分别设置了一个 Cassandra 集群,如果某个区域出现故障(区域 C)。 整个地区的中断如何影响 Cassandra 查询。
- 如果我的读取和写入配置为 CL = LOCAL_QUORUM 中断会影响区域 A 和 B 中的事务。
- 如果读写都在 CL = EACH_QUORUM,区域 A 和 B 中 reads/writes 会失败吗?
- 如果区域 C 正在进行计划维护怎么办?
我建议您查看涵盖 Cassandra 工作原理的 DSE Architecture Guide。您需要记住几件事,例如,所有写入都发送到所有 DC 中的所有副本,与一致性级别无关,并且当节点短时间(默认情况下小于 3 小时)停机时,其他节点将收集 -称为提示,将在节点返回时重播更改。
中断的影响将取决于您使用的一致性级别,因此回答您的问题:
- 不,它不应该影响 DC A 和 B,直到你将
read_repair_chance
或dclocal_repair_chance
设置为非零 - 在以后的情况下你可能会点击 CASSANDRA-9753,那可能导致向远程 DC 发送请求; - 是的,读写将失败
EACH_QUORUM
。但是你可以使用QUORUM
与 3 个 DC(当然取决于每个 DC 中的 RF),并允许一个完全下降; - 关闭整个区域和失败是一样的,但是如果你一台一台地做,那么它可能会成功。