【问题标题】:Datastax Cassandra - Spanning Cluster node across amazon regionDatastax Cassandra - 跨亚马逊地区的跨集群节点
【发布时间】:2016-10-04 09:08:39
【问题描述】:

我计划在亚马逊托管区域启动三个 EC2 实例。例如,Region-A、Region-B 和 Region-C。

根据上述计划,每个区域作为集群(或数据中心),并有一个节点。(如果我错了,请纠正我。

使用这个基础设施,我可以达到以下配置吗?

复制因子:2

读写级别:QUORUM。

我做这些的基本意图是实现“如果两个区域都掉了,我可以剩下一个区域”。

请帮助我输入您的意见。

注意:我对 cassandra 很陌生,因此无论您提供什么输入,我都会对我有用。

谢谢

【问题讨论】:

    标签: amazon-ec2 cassandra datastax


    【解决方案1】:

    如果您的复制因子为 2 并使用 Quorum 的 CL,您将无法容忍失败,即如果一个节点出现故障,您只能得到 1 个确认 - 这不是大多数响应。

    如果您跨多个区域进行部署,如您所提到的,每个区域都是集群中的一个 DC。每个单独的 DC 都是您所有数据的完整副本,即它将保存您的密钥空间的所有数据。如果您在每个区域内以 LOCAL_* 一致性(例如 LOCAL_ONE、LOCAL_QUORUM)级别进行读/写,那么您可以容忍其他区域的丢失。

    每个 DC/Region 中的副本数量以及您在该 DC 中用于读/写的一致性级别将决定您可以容忍多少故障。如果您使用的是 QUORUM - 这是一个跨 DC 一致性级别。这将需要来自所有 DC 中集群中所有副本的大多数确认。如果您失去 2 个区域,那么您不太可能获得法定人数的回复。

    此外,值得记住的是,Cassandra 可以了解它在区域中部署的可用区,并且可以尽最大努力确保将数据的副本放置在多个可用区中。这会让你对失败有更好的容忍度。

    如果这是我,我不需要拥有强大的跨 DC 一致性级别(如 QUORUM)。我将在每个区域中有 4 个节点,部署在每个 AZ 中,然后在每个区域中复制因子为 3。然后我会在 LOCAL_QUORUM 或 LOCAL_ONE(最好)读/写。如果您使用 LOCAL_ONE,则每个 DC 中的副本可能会更少,例如,使用 LOCAL_ONE 的复制因子为 2 意味着您可以容忍 1 个副本的丢失。

    但是,这将比您最初建议的要贵,但(对我而言)如果我想在多个区域中并容忍丢失 2 个节点,这将是我需要的最低设置。您可以使用 3 个节点如果您想真正节省成本,请在每个地区进行。

    【讨论】:

    • 非常感谢您的建议。
    猜你喜欢
    • 2016-10-13
    • 1970-01-01
    • 2020-03-06
    • 2023-03-30
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多