Replication策略
1Cassandra在多个节点存储replica来确保可靠性和容错性。Replication策略决定了replica保存到哪些节点。
replica的总数由replication factor控制。replication factor 1表示一行数据,只会有一个replica,被保存在唯一一个节点上。replication factor 2表示一行数据有两个副本,每个副本保存在不同的节点上。所有的replica同等重要;没有主次replica之分。一般的规则是,replication factor不应该超过集群里的节点数量。不过,可以先增大replication factor,再添加更多节点。如果replication factor配置超过节点数量,写操作会被拒绝。读操作不受影响。
Cassandra内置了两种类型的replication策略:
- SimpleStrategy:用于单个数据中心。如果有可能以后会有多个数据中心,应该用NetworkTopologyStrategy
- NetworkTopologyStrategy:对绝大多数部署方式,都强烈推荐该策略,因为今后的扩展更容易
关于每个数据中心应该配置几个replica,一般主要考虑以下两个因素:
- 保证读操作没有跨数据中心的延时损耗
- 如何处理硬件故障的情形
对于多数据中心,最常用的两种配置replica的策略是:
- 每个数据中心2个replica:基于这种配置,对于每个数据中心,即使单个节点故障,还是能够支持consistency level ONE的本地读
- 每个数据中心3个replica:基于这种配置,对于每个数据中心,即使单个节点故障,还是能够支持consistency level LOCAL_QUORUM的本地读;即使2两个节点故障,还是能够支持consistency level ONE的本地读
参考
- http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureDataDistributeReplication_c.html
comments powered by