Datastax Cassandra - 横跨亚马逊地区的跨越集群节点

时间:2016-06-04 10:10:58

标签: amazon-ec2 cassandra datastax

我计划在亚马逊托管地区推出三个EC2实例。例如,Region-A,Region-B和Region-C。

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

使用此基础架构,我可以获得以下配置吗?

复制因子:2

写入和读取级别:QUORUM。

我做这些事情的基本目的是实现"如果两个地区垮台,我可以在剩下的一个地区生存下来。#/ p>

请帮助我提供您的意见。

注意:我对cassandra很新,所以无论你给予什么投入,对我都有用。

由于

1 个答案:

答案 0 :(得分:2)

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

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

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

此外,值得记住的是,Cassandra可以了解它在区域中部署的AZ,并且可以尽力确保将数据的副本放置在多个AZ中。这样可以更好地容忍失败。

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

然而,这将比你最初的建议更昂贵但是(对我而言)如果我想要在多个地区并且容忍丢失2,那么这将是我需要的最小设置。你可以使用3个节点在每个地区,如果你想真正节省成本。