我正在尝试使用datastax ops center为学校项目复制cassandra nosql数据库中的数据。根据我的阅读,有三个关键字:cluster,node和datacenter,据我了解,一个节点中的数据可以在另一个节点中复制,而另一个节点又存在于另一个集群中。包含相同(重复)数据的所有节点组成一个数据中心。是对的吗?
如果不是,有什么区别?
最佳答案
Cassandra中元素的层次结构为:
群集是数据中心的集合。
数据中心是机架的集合。
机架是服务器的集合。
服务器默认包含256个虚拟节点(或vnode)。
vnode是服务器内的数据存储层。
注意:服务器是Cassandra软件。服务器安装在机器上,其中机器是物理服务器,EC2实例或类似服务器。
现在专门解决您的问题。
单个数据单元称为分区。是的,分区跨多个节点复制。分区的每个副本称为副本。
在多数据中心群集中,复制是按数据中心进行的。例如,如果您在旧金山有一个名为dc-sf的数据中心,而在纽约有一个名为dc-ny的数据中心,则可以控制每个数据中心的副本数。
例如,您可以将dc-sf设置为3个副本,将dc-ny设置为2个副本。
这些数字称为复制因子。您可以专门说dc-sf的复制因子为3,而dc-ny的复制因子为2。简单来说,dc-sf将具有3个分布在三个vnode上的数据副本,而dc-sf将具有数据的2个副本分布在两个vnode上。
尽管每个服务器默认都有256个vnode,但是Cassandra足够聪明,可以选择存在于不同物理服务器上的vnode。
总结一下: