Amazon ec2 Datastax Cassandra-跨amazon区域的跨群集节点

Amazon ec2 Datastax Cassandra-跨amazon区域的跨群集节点,amazon-ec2,cassandra,datastax,Amazon Ec2,Cassandra,Datastax,我计划在Amazon托管区域发布三个EC2实例。例如,区域A、区域B和区域C 根据上述计划,每个区域充当集群(或数据中心)并有一个节点。(如果我错了,请纠正我) 使用此基础设施,我可以实现以下配置吗 复制因子:2 写入和读取级别:仲裁 我这样做的基本意图是实现“如果两个区域被破坏,我可以用剩下的一个区域生存” 请帮我提供您的意见 注:我对卡桑德拉很陌生,因此无论你提供什么样的信息,都会对我有用 谢谢如果您的复制系数为2,并且使用仲裁的CL,那么您将无法容忍失败,即如果某个节点出现故障,并且您只收

我计划在Amazon托管区域发布三个EC2实例。例如,区域A、区域B和区域C

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

使用此基础设施,我可以实现以下配置吗

复制因子:2

写入和读取级别:仲裁

我这样做的基本意图是实现“如果两个区域被破坏,我可以用剩下的一个区域生存”

请帮我提供您的意见

注:我对卡桑德拉很陌生,因此无论你提供什么样的信息,都会对我有用


谢谢

如果您的复制系数为2,并且使用仲裁的CL,那么您将无法容忍失败,即如果某个节点出现故障,并且您只收到1次确认-这不是大多数响应

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

每个DC/区域中的副本数量以及您在该DC中读/写时使用的一致性级别将决定您可以容忍的故障程度。如果您使用的是仲裁-这是一个跨DC一致性级别。这将需要来自集群中所有DC中所有副本的大部分ACK。如果你失去了两个区域,那么你就不太可能得到足够的响应

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

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


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

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

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

每个DC/区域中的副本数量以及您在该DC中读/写时使用的一致性级别将决定您可以容忍的故障程度。如果您使用的是仲裁-这是一个跨DC一致性级别。这将需要来自集群中所有DC中所有副本的大部分ACK。如果你失去了两个区域,那么你就不太可能得到足够的响应

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

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


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

非常感谢您的建议。非常感谢您的建议。