我是Cassandra的新手,对节点和vnode的概念感到困惑。
这是我读过的:Cassandra中元素的层次结构是:
群集-数据中心-机架服务器节点
该节点被描述为服务器中的数据存储层,该服务器是包含Cassandra软件的实际物理计算机。
据我了解,在某些情况下,vnode与节点似乎不同/效率更高。
但是我在将它们放置在此层次结构时遇到了麻烦。
vnode只是上述层次结构中的另一种节点吗?
要么
是在引入了vnode的概念之后,上述层次结构中称为server的元素现在称为节点,而上述层次结构中称为node的一个元素现在称为vnode!
最佳答案
您可以将vnodes视为已描述的层次结构中下一步(在物理节点之后)。
在调整群集大小并使数据分发更加灵活时,Vnode帮助您根据令牌重新分发数据。
datastax网站上有一个很好的解释:https://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2
编辑:在旧版本的Cassandra中,令牌以每个服务器具有一个令牌(范围)的方式进行拆分,并根据复制因子在物理计算机之间进行复制。 vnodes体系结构(例如,也用于riak中)使“节点”层实现虚拟化,将环分成大量令牌范围(vnode),并且每个物理节点(cassandra服务)上都运行着多个vnode。请查看所提供的链接,其中有很好的示例解释。