Amazon ec2 cassandra:单数据中心部署策略
我们计划使用ApacheShiro和cassandra进行分布式会话管理,非常类似于前面提到的@ 需要在Amazon EC2中部署cassandra的建议: 在EC2中,我们有以下设置: 单个区域,2个可用性区域(AZ),4个节点 相应地,卡桑德拉被配置为:Amazon ec2 cassandra:单数据中心部署策略,amazon-ec2,cassandra,cassandra-2.0,Amazon Ec2,Cassandra,Cassandra 2.0,我们计划使用ApacheShiro和cassandra进行分布式会话管理,非常类似于前面提到的@ 需要在Amazon EC2中部署cassandra的建议: 在EC2中,我们有以下设置: 单个区域,2个可用性区域(AZ),4个节点 相应地,卡桑德拉被配置为: 单一数据中心:DC1 两个机架:机架1、机架2 4个节点:机架1_节点1、机架1_节点2、机架2_节点1、机架2_节点2 使用的数据复制策略是网络拓扑策略 由于Cassandra用作会话数据存储,我们需要高一致性和可用性 我的问题: 一个集
单一数据中心:DC1 两个机架:机架1、机架2 4个节点:机架1_节点1、机架1_节点2、机架2_节点1、机架2_节点2 使用的数据复制策略是网络拓扑策略 由于Cassandra用作会话数据存储,我们需要高一致性和可用性 我的问题:
一般来说,使用偶数个节点并不是最好的主意,使用偶数个可用性区域也不是最好的主意。在这种情况下,如果其中一个机架出现故障,整个集群将消失。我建议使用3个机架,每个机架1或2个节点,3个副本和读写仲裁。那么集群只有在两个节点/AZ失败时才会失败。您可能听说过数据库理论中的CAP定理。如果没有,你可以在维基百科上了解这个定理的详细信息,或者用谷歌搜索一下。它说,对于具有多个节点的分布式数据库,一个数据库只能实现以下三个目标中的两个:一致性、可用性和分区容差 Cassandra旨在实现高可用性和分区容忍度(AP),但为此牺牲了一致性。不过,您可以在Cassandra中将一致性级别设置为all,以将其转换为CA,这似乎是您的目标。仲裁2的设置基本上与“all”相同,因为您有2个副本。但在此设置中,如果包含数据的单个节点关闭,客户端将收到一条读/写错误消息(不允许分区)
您可以在这里看一段视频了解更多信息(它需要一个datastax帐户):两个机架中有两个节点/AZ,如果一个机架发生故障,Cassandra使用CL=QOURUM和使用NetworkTopologyStrategy进行写和读会成功吗?恐怕不行,因为您的集群将有一半停机。查看NTS的详细信息。这似乎很有趣,您可以提示驱动程序尝试降低一致性级别!!看起来很棒的功能,拉文·卡桑德拉!!谢谢你的回答。是的,我已经了解了CAP以及卡桑德拉在过去两年中的运作;-)