当前,我们在单个AWS区域中使用带有两个可用区的EC2Snitch。目标是即使没有一个可用区也可提供弹性。大多数数据都以RF = 2复制,因此每个可用区都基于Ec2Snitch获得一个副本。
现在,我们已经得出结论,开始使用GossipingPropertyFileSnitch。原因主要是我们已经意识到,一个可用区下降是一个远程事件,即使它发生,堆栈中还有其他系统不支持此操作。因此,如果发生这种情况,最终整个应用都会崩溃。
其他原因是使用EC2Snitch和两个可用区时,我们不得不将比例缩放为2(每个可用区中一个)。通过仅使用一个机架的GossipingPropertyFileSnitch,我们可以将比例缩放为1。
当我们更改此告密设置时,拓扑是否会更改?我想避免需要运行nodetool修复。运行nodetool修复程序总是会失败,并且它将永远运行。
答案 0 :(得分:1)
是否更改拓扑取决于您执行更改的方式。如果将与当前配置相同的逻辑直流和机架分配给该节点,则不应更改拓扑。
更新为GossipingPropertyFileSnitch
后,必须将机架与AZ匹配。您需要滚动重启才能进行重新配置。
示例cassandra-rackdc.properties
,用于2个AZ中1 dc中的2个节点:
# node=10.0.0.1, dc=first, AZ=1
dc_suffix=first
# Becomes
dc=first
rack=1
# node=10.0.0.2, dc=first, AZ=2
dc_suffix=first
# Becomes
dc=first
rack=2
在侧面,您需要研究维修失败的原因。不幸的是,它们对于集群健康非常重要。