Cassandra 中的冗余(Replication)

简介:

 什么是Replication?

在Cassandra中,Replication是存储数据的到多个节点来保证可靠性和出错容忍性。当你创建一个keyspace时候(相当于关系数据库中的表)的时候,就必须给出一个副本放置策略 (Replica Placement Strategy)

 

什么是副本因子(Replica Factor)?

这个数决定了有几份副本,比如如果设置为1,则表示每一行只有一个副本,以此类推。所有的副本地位都是相等的, 没有主从之分。注意,副本因子最多不可以超过节点的数量,(没这么多节点让你放这么多副本)否则写操作会被拒绝

 

什么是副本放置策略(Replica Placement Strategy)?

这个策略决定了一个keyspace的副本如何放置在集群中(当创建keyspace时候就指定了)

a.简单策略(SimpleStrategy):

当使用Cassandra CLI 命令行工具创建keyspace时的默认副本放置策略。假定根据partitioner得到第一个节点设为N1,它的顺时针的节点为N2,N3...则这种策略会把keyspace的第一个副本放置在N1上,然后其他副本依次放置在N2,N3..上

 

b.网络拓扑策略(NetworkTopologyStrategy):

这种策略用于当你知道节点如何在数据中心(Data Center)分组的情况或者你希望部署集群横跨多个数据中心,此时你必须指定每个数据中心要多少个副本,(一般推荐设为2或者3)。在这种情况下,副本放置策略由数据中心自己决定。具体为,先由partitioner决定第一个node设为N1,在架子(rack1)上,属于数据中心DC1,则第一个副本放在N1,其他副本也必须分别放在DC1中,优先选择不是rack1的架子,如果没有其他rack,则只能放在rack1上。

比如如图所示,现在有两个数据中心,蓝色表示DC1,绿色表示DC2,DC1上有2个架子,分别是Rack1和Rack2。则如果partitioner选择的第一个节点是DC1的节点N3的话,那么副本R1就放在DC1的节点N3 上,而这个副本的下一个副本R2就放在同一个DC,也就是DC1的下一个rack上(如果有),它刚好发现,顺时针的下一个节点N4刚好也是DC1,但是是另外一个架子(Rack2),所以副本R2放在N4上。对于属于DC2的2个副本也遵循同样的策略。





本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/865589,如需转载请自行联系原作者

目录
相关文章
|
NoSQL Java
简析Cassandra的BATCH操作
cassandra中批量写入的操作称为batch,通过batch操作可以将多个写入请求合并为一个请求。这样有如下作用: 把多次更新操作合并为一次请求,减少客户端和服务端的网络交互。 batch中同一个partition key的操作具有隔离性。
6977 0
|
NoSQL 前端开发
cassandra nodetool常用命令介绍
简介 nodetool是cassandra自带的外围工具,通过JMX可以动态修改当前进程内存数据,注意cassandra是无主对等架构,默认的命令是操作本机当前进程,例如repair,如果需要做全集群修复,需要在每台机器上执行对应的nodetool命令。
4202 0
|
数据采集 移动开发 前端开发
如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)
最近笔者终于把H5-Dooring的后台管理系统初步搭建完成, 有了初步的数据采集和数据分析能力, 接下来我们就复盘一下其中涉及的几个知识点,并一一阐述其在Dooring H5可视化编辑器中的解决方案. 笔者将分成3篇文章来复盘, 主要解决场景如下
937 0
|
iOS开发 MacOS
macOS开机自启动执行脚本
【8月更文挑战第23天】在macOS上设置开机自动执行脚本可通过三种方式:一是利用“系统偏好设置”中的“用户与群组”功能直接添加脚本或应用;二是通过创建`.plist`文件并放置于`LaunchAgents`目录,这种方式能更精细地控制脚本运行;三是使用cron任务,在系统启动时执行脚本,但该方法不太适用于图形界面程序且可能受限于启动顺序。每种方法各有优缺点,需根据实际情况选择。
2349 0
|
NoSQL Oracle 关系型数据库
cassandra使用场景判断:何时使用及何时不用
介绍 我有一个具有以下功能的数据库服务器: 高可用设计。 可以全球分布。 允许应用程序随时随地写入任何节点。 只需向群集添加更多节点即可进行线性扩展。 自动负载及数据均衡。 一种看起来很像SQL的查询语言。
9268 1
|
NoSQL 负载均衡
【Cassandra】Cassandra集群管理节点
The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.
1097 0
|
存储 消息中间件 缓存
【Cassandra从入门到放弃系列 一】概述及基本架构
【Cassandra从入门到放弃系列 一】概述及基本架构
4202 1
|
iOS开发 数据安全/隐私保护
|
运维 NoSQL
Cassandra 数据一致性修复 repair 来龙去脉
文章分3块:1.为什么需要repair?;2.repair大概流程?;3.repair可能的问题。
3774 0
Cassandra 数据一致性修复 repair 来龙去脉