在单个数据中心内使用rac和vnode配置Cassandra

时间:2019-03-01 06:06:53

标签: cassandra

我想知道哪种配置最适合在节点之间均匀分配数据。

  1. 5个节点和3个racs(rac1上2个节点(node 1,node4),rac2上2个节点(node2,node4),rac3(node3)上1个节点) 复制因子3和在法定人数上读/写

在这种情况下,我想知道rac3中唯一的节点node3是否会比其他节点具有更多的数据,因为复制策略表明副本将位于其他rac上的节点中。

  1. 6个节点和3个racs(rac1上2个节点(node 1,node4),rac2上2个节点(node2,node4),rac3上2个节点(node3,node6)) 复制因子3和在法定人数上读/写

在这种情况下,数据将在所有节点之间平均分配。

想知道我的理解是否正确?

3 个答案:

答案 0 :(得分:0)

是的,您应该使用6个节点来确保每个机架中的节点数相等-当使用多个机架时,每个机架中的节点数相等是基本要求。

但是,您真的需要多个机架吗?因为当您每次需要扩展时,缩放变得更加困难,因为每次需要照顾备用节点顺序和数据分配。

答案 1 :(得分:0)

在Cassandra中,多个RACK可以在任何灾难性情况下在cassandra群集中继续提供数据可用性。 Cassandra建议在产品群集中也使用相同的建议。您的两个选项都很好。但是,您应该在cassandra群集中使用奇数个节点。

答案 2 :(得分:0)

如果在3个机架中有5个节点,是的,一个节点将承受更大的负载/压力。

最好以机架数的倍数扩展群集,以保持节点之间的数据平衡。例如,在3机架集群中,每次扩展集群时应添加3个节点。

如果您选择使用多个机架,则理想的机架数应≥您选择的复制因子。这样,Cassandra可以将每个副本存储在单独的机架中。

在机架故障的情况下,其他副本仍然可用。

例如,对于RF = 3和3个机架以及在QUORUM处的查询,您可以承受单个机架的故障。鉴于RF = 3和2个机架位于QUORUM,因此无法保证在机架故障的情况下2个副本仍然可用。

机架用于将故障域通知给Cassandra。如果您在自己的数据中心中运行,顾名思义,则应根据节点所在的机架来分配机架。如果您在云中运行,最好的选择是将机架映射到AWS 区域(或与您的提供商等效的任何区域)。