分区器Partitioners
在集群内,根据设置的副本数,决定数据如何分发,允许跨机房
具体看
http://teddymaef.github.io/learncassandra/cn/replication/partitioners.html http://blog.csdn.net/limingjian/article/details/8944572
数据的副本数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的记录用于设置。
推荐几个学习的连接
http://blog.csdn.net/earthhour/article/category/1346151 http://teddymaef.github.io/learncassandra/cn/replication/replication_strategies.html
http://www.intra-mart.jp/document/library/iap/public_zh_CN/imbox/cassandra_administrator_guide/
cql的文档
需要注意的是
存放在 Cassandra 中的全部数据都带有时间,此时间主要是用于解决集群环境中的数据矛盾问题。 因此,在运行 Cassandra 的服务器上进行了变更时钟等操作时,有可能发生数据不一致并导致数据损坏。 另外,存放于 Cassandra 数据中的时间并非执行 Cassandra 服务器上的时间,而是使用连接到 Cassandra 的应用程序侧上设定的时间。 因此, intra-mart Accel Platform 的动作环境以及运行 Cassandra 的服务器上时钟的全部时间都必须一致。 为了统一时间,请考虑用ntp服务器。