Cassandra 2.1将snitch从EC2Snitch更改为八卦属性文件snitch

Cassandra 2.1将snitch从EC2Snitch更改为八卦属性文件snitch,cassandra,nodetool,Cassandra,Nodetool,目前,我们在一个AWS区域使用了两个AZ的EC2Snitch。其目标是提供弹性,即使一个AZ不可用。大多数数据都是在RF=2的情况下复制的,因此每个AZ都会基于Ec2Snitch获得一个副本 现在我们已经得出一个结论,转移到八卦房地产文件告密者。主要原因是我们已经意识到一个AZ下降是一个远程事件,即使它发生了,我们的堆栈中还有其他系统不支持这一点;所以,如果发生这种情况,最终整个应用程序都会崩溃 另一个原因是,对于EC2Snitch和两个AZ,我们必须按2的因子进行缩放(每个AZ一个)。通过仅使

目前,我们在一个AWS区域使用了两个AZ的EC2Snitch。其目标是提供弹性,即使一个AZ不可用。大多数数据都是在RF=2的情况下复制的,因此每个AZ都会基于Ec2Snitch获得一个副本

现在我们已经得出一个结论,转移到八卦房地产文件告密者。主要原因是我们已经意识到一个AZ下降是一个远程事件,即使它发生了,我们的堆栈中还有其他系统不支持这一点;所以,如果发生这种情况,最终整个应用程序都会崩溃

另一个原因是,对于EC2Snitch和两个AZ,我们必须按2的因子进行缩放(每个AZ一个)。通过仅使用一个机架的GossipingPropertyFileSnitch,我们可以按1的比例缩放


当我们改变这个飞贼设置时,拓扑结构会改变吗?我希望避免需要运行nodetool修复。我们在运行nodetool repair时总是遇到故障,而且它会永远运行。

拓扑是否更改取决于您执行更改的方式。如果将与当前配置相同的逻辑dc和机架分配给节点,则不应更改拓扑

更新到
GossipingPropertyFileSnitch
后,您必须将机架与AZ匹配。您需要执行滚动重新启动以进行重新配置

跨2个AZ的1个dc中的2个节点的示例
cassandra rackdc.properties

#node=10.0.0.1,dc=first,AZ=1
dc_后缀=第一个
#变成
dc=第一
机架=1
#节点=10.0.0.2,dc=first,AZ=2
dc_后缀=第一个
#变成
dc=第一
机架=2

另一方面,您需要探究维修失败的原因。不幸的是,它们对集群健康非常重要

我的集群分布在单个DC的两个AZ上。因此,使用EC2Snitch,它将映射到一个DC和两个机架。我计划使用GossipingPropertyFileSnitch移动单机架。那么程序将是1。保留现有机架dc组合2。在第二个AZ节点上将DC从2更改为1,然后运行nodetool修复。是否应在每次节点更改时运行修复?那要花很多时间。你得做一次全面的修理。是的。看一看,它允许您执行子范围修复,它使用更少的资源,因为这是一个更精细的过程。我可以在更改每个节点的配置后运行本地修复吗?您之前说过,在修复时遇到问题,但没有查看群集,我恐怕无法给出正确的答案,但这将是尝试修复集群的一个起点,一次修复一个节点(在另一个节点上触发修复之前确保修复完成)。