【发布时间】:2015-10-05 17:17:26
【问题描述】:
对于多数据中心,我们是否有一个选项可以调整一致性以在获取数据之前检查两个数据中心中的最新数据?像一个,quorom 或 All 是特定于数据中心的。我们可以做同样的事情来检查两个数据中心的数据一致性吗?如果我们对两个数据中心都有复制因子 3 和 3。 each_quorum 是否解决了这个问题,或者我们有一致性级别 ALL 来检查两个 dcs 中 6 个节点的一致性?
【问题讨论】:
对于多数据中心,我们是否有一个选项可以调整一致性以在获取数据之前检查两个数据中心中的最新数据?像一个,quorom 或 All 是特定于数据中心的。我们可以做同样的事情来检查两个数据中心的数据一致性吗?如果我们对两个数据中心都有复制因子 3 和 3。 each_quorum 是否解决了这个问题,或者我们有一致性级别 ALL 来检查两个 dcs 中 6 个节点的一致性?
【问题讨论】:
根据documentation,EACH_QUORUM 实现了这一点:
用于多个数据中心集群严格维护 每个数据中心的同一级别的一致性。为了 例如,如果您希望读取失败,请选择此级别 数据中心已关闭,无法达到 QUORUM 那个数据中心。
【讨论】:
EACH_QUORUM可能是你想要的,但不幸的是,EACH_QUORUM 不再支持读取:请参阅 Java 驱动程序邮件列表中的 this topic 以获得解释。
如果您的写入是使用EACH_QUORUM 或更高版本完成的,那么只需使用LOCAL_QUORUM 进行读取,您就会达到所需的一致性级别。如果不是,您将不得不以一致的方式读取ALL,如果不是两个 DC 中的所有副本都处于活动状态,那么(很可能)您的一些读取失败的风险。
【讨论】: