在Cassandra工作vnodes

时间:2017-11-19 20:41:22

标签: cassandra

有人能解释一下Cassandra中vnodes分配的工作原理吗? 如果我们有一个N个节点的集群并且添加了一个新节点,那么如何将令牌范围分配给这个新节点?

1 个答案:

答案 0 :(得分:2)

添加或删除节点时会自动重新平衡群集。当节点加入群集时,它承担来自群集中其他节点的偶数部分数据的责任。如果节点发生故障,则负载将均匀地分布在群集中的其他节点上。

以下是一些可能有助于您更好地了解vnode如何工作以及如何分配范围的阅读 - Virtual nodes in Cassandra 1.2

如上所述,Cassandra会自动处理群集中每个节点的令牌范围计算,与num_tokens值成比例。 vnodes的令牌分配由org.apache.cassandra.dht.tokenallocator.ReplicationAwareTokenAllocator类计算。

当一个新节点加入群集时,它将注入它自己的范围并从现有节点窃取一些暴怒。此video可能会有所帮助