cassandra的一些概念

分区器Partitioners

在集群内,根据设置的副本数,决定数据如何分发,允许跨机房

具体看

数据的副本数replica

通过cql命令CREATE KEYSPACE,在建立keyspace的时候设置

一致性策略

既然数据有了跨机房的可能性,还有多个副本的情况,那么数据如何保持一致,你读写的时候,结果就会有很多种,这个就需要一致性策略来解决
通过cql命令CONSISTENCY设置

具体看

http://teddymaef.github.io/learncassandra/cn/replication/turnable_consistency.html

num_tokens

token是cassandra用来做数据的hash分配的时候用到的东西;之前是需要用工具为每个节点算当前的token是多少;
现在cassandra多了虚拟节点的概念,用了num_tokens参数,动态增加和删除节点,就不需要自己去重新分配节点的token了

一些概念

data center和node区别
Cluster:逻辑上的集群的概念,包含多个Node,有可能跨数据中心。
DataCenter :数据中心,可以理解为是一个机房,包含多个Rack
Rack : 机架,机架上包含多个Node
Node : 可以理解为机器,每个Node上都需要标示出这个Node是属于哪个DC和RAC上,如cassandra的cassandra-topology.properties这个配置文件中存有Cassandra Node IP=Data Center:Rack的记录用于设置。

推荐几个学习的连接

cql的文档

需要注意的是

存放在 Cassandra 中的全部数据都带有时间,此时间主要是用于解决集群环境中的数据矛盾问题。
因此,在运行 Cassandra 的服务器上进行了变更时钟等操作时,有可能发生数据不一致并导致数据损坏。
另外,存放于 Cassandra 数据中的时间并非执行 Cassandra 服务器上的时间,而是使用连接到 Cassandra 的应用程序侧上设定的时间。
因此, intra-mart Accel Platform 的动作环境以及运行 Cassandra 的服务器上时钟的全部时间都必须一致。
为了统一时间,请考虑用ntp服务器。
原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4296619.html