我知道您不必重新平衡虚拟机节点,但我们何时才真正使用 它在生产场景中?它的功能与物理单一令牌节点的功能相同吗?如果是这样,那么为什么要使用单个令牌节点呢?如果我有大量数据和簇大小(比如300个节点),vnodes会有帮助吗?
答案 0 :(得分:2)
使用vnode的主要好处是在引导新节点时流式传输的数据更均匀。为什么?好吧,在添加新节点时,它将在其令牌范围内请求数据。最理想的是,它请求的数据将在所有节点上均匀分布,从而减少了将数据发送到引导节点的所有节点的工作负载(并且还加快了引导过程)。
一旦你拥有大量的物理节点,比如300的例子,看起来这个好处就会减少(假设没有热点或数据分区问题)。我不知道引用要使用的节点数量的实际指南,或者不使用文档中的vnode。是的,它可以在生产中看到。
可在此处找到更多信息: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/config/configVnodes.html
答案 1 :(得分:1)
除了克里斯的出色回答,我还会补充一下。当您拥有一个包含vnode的大型集群时,让Cassandra管理令牌范围会很有帮助。如果没有vnode,您最终必须自己调整大小并为每个(现有的)新节点重新指定令牌范围。使用vnodes,Cassandra会为您处理。
比较文档中列出的步骤的差异:
添加没有vnodes的节点:http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsAddRplSingleTokenNodes.html
VS
添加vnodes:http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_add_node_to_cluster_t.html