文档章节

走进cassandra之四 副本机制

chenkangyao
 chenkangyao
发布于 2016/07/19 13:35
字数 561
阅读 17
收藏 0
点赞 0
评论 0

如果你要想最大限度保持一个东西不会忘记掉,你最好的办法,不是死记,记好几十遍。
而是要告诉几个人,这样就算你忘记了,别人还记得。
在cassandra里面呢,这个原理可以描述为
Replication is the process of storing copies of data on multiple nodes toensure reliability and fault tolerance.
当然,你也不能为了安全,要告诉100个人,这样累也累死了。

这个东东,最好是不多不少,刚刚合适。
在cassandra里面,这个不多不少的数,有个名词,叫replication factor(副本因子)
The total number of replicas across the cluster is referred to as thereplication factor.
这个数,代表什么意思呢?
A replication factor of 2 means two copies of each row, where each
copy is on a different node.

就是代表,有多少个数据的副本。

确定了有多少副本了,还有一个问题,这些副本怎么分布呢?
让哪些节点,持有你这些副本呢?

这也有对应的算法,

• SimpleStrategy
• NetworkTopologyStrategy

SimpleStrategy 用在只有一个数据中心的情况下。
SimpleStrategy places the first replica on a node determined by the partitioner. Additional replicas are placed on the
next nodes clockwise in the ring without considering rack or data centerlocation.

这句的意思就是:第一个数据副本放在 环里的一个节点上(这个节点由上节说到的分区器确定),其他的数据副本,按照顺时针方向,依次放在写一个节点。(不考虑机架或者数据中心的位置)。

NetworkTopologyStrategy 这个适用于有多个数据中心的情况。
This strategy specify how many replicas you want in each data center.
每个数据中心里要有几个副本,由这个来定。
在决定这个数字的时候,有2个因素要考虑:
(1) being able to
satisfy reads locally, without incurring cross-datacenter latency, and
(2) failure scenarios.

主要意思就是说,北京人访问北京的数据中心就好了,不要跑去访问上海的数据中心,那样跑的路就太远了。
另外,在同一个数据中心,完全有可能所有节点都死掉。
比如说,大厦整体断电了,所有机器同时见马克思了。
所以数据要分散在不同数据中心。

© 著作权归作者所有

共有 人打赏支持
chenkangyao
粉丝 4
博文 29
码字总数 36163
作品 0
广州
高级程序员
走进cassandra之七 最终一致性

关于这个最终一致性,我们还是举打仗的那个例子。 一个师,下辖三个团,一个独立营。 大家知道,在战斗的时候,突发事件很多,时间也很紧迫。 来自师部的作战命令,可能没有办法及时到达各个...

chenkangyao ⋅ 2016/07/19 ⋅ 0

走进cassandra之三 分区器

从这节开始,都是高年级知识了,需要一点分布式的基础知识。 以前的文章说到, james(公司大佬)把任务分给了几拨人来做,那么怎么个分法呢? 什么任务交给什么人呢? James估计是有自己的一...

chenkangyao ⋅ 2016/07/19 ⋅ 0

走进cassandra之六 数据读写删

先说写,再说读,最后说 数据一致性(data consistency)。 cassandra对于 数据写入,那是相当给方便的,比对 首长儿子还亲呢, 写的相当快,相当高效。 相比来说,关系型数据库,对于数据 ...

chenkangyao ⋅ 2016/07/19 ⋅ 0

走进cassandra 之一 CAP和分布式

决定share一下我的cassandra学习成果,写一些博客,跟大家共同分享一下,准备写10篇文章,内容分别涉及 分布式存储概述及CAP, 数据模型, 分区器, 副本机制, 存储机制, 数据读写删, 最终一...

chenkangyao ⋅ 2016/07/19 ⋅ 0

如何实现节点间数据同步

Apache Cassandra3.X 系列,第 4 部分 如何实现节点间数据同步 周 明耀 2017 年 12 月 06 日发布 系列内容: 此内容是该系列 6 部分中的第 # 部分: Apache Cassandra3.X 系列,第 4 部分 ht...

周 明耀 ⋅ 2017/12/06 ⋅ 0

Cassandra维护最终一致性 和存储机制 分区策略

维护最终一致性 Cassandra 通过4个技术来维护数据的最终一致性,分别为逆熵(Anti-Entropy),读修复(Read Repair),提示移交(Hinted Handoff)和分布式删除。 1) 逆熵 这是一种备份之间的...

Will--wang ⋅ 2015/05/26 ⋅ 0

cassandra architecture

Apache Cassandra是一个开源的、分布式、无中心、弹性可扩展、高可用、容错、一致性可调、面向列的数据库,它基于Amazon Dynamo的分布式设计和Google BigTable的数据模型。 分布式无中心 可以...

Jun_Wong ⋅ 01/10 ⋅ 0

走进cassandra之五 存储机制

有图有真相。 先上个图。 这个图总的意思就是说, 数据先写入内存中的Memtable,Memtable达到条件后刷新到磁盘,保存为SSTable,同一个CF的多个SSTable可以合并(Compaction)以优化读操作 co...

chenkangyao ⋅ 2016/07/19 ⋅ 0

聊聊Cassandra(一)docker构建cassandra集群

单机 首先docker镜像拥有jdk8与python2.7,这里不再赘述。 进入容器中安装: 解压: 增加新用户cassandra: 修改密码: 修改配置文件cassandra.yaml: 运行: 测试启动是否成功: cqlsh> 进入c...

你我他有个梦 ⋅ 2016/10/26 ⋅ 0

考虑 Apache Cassandra 数据库

简介 在数据库历史文章 “What Goes Around Comes Around”(参阅 参考资料)中,Michal Stonebraker 详细描述了存储技术是如何随着时间的推移而发展的。实现关系模型之前,开发人员曾尝试过...

ihaolin ⋅ 2014/08/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java的Excel导出工具类

首先在POM中引入需要的Jar <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>o......

Kxvz ⋅ 4分钟前 ⋅ 0

Java 3DES加密解密

import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.binary.Base64; //算法代码[java] view plain copy /** * 转换成十六进制字......

说回答 ⋅ 11分钟前 ⋅ 0

php 浮点型计算精度问题

今天碰到一个金额计算的问题,浮点数做差,结果有误(精度有问题)。 $a = floatval('6');$b = floatval('4.99');$m = floatval('1');$r = $a - $b;$r = $r - $m;var_dump($r);//f...

stupidboy ⋅ 33分钟前 ⋅ 0

Mahout推荐算法之SlopOne

一、 算法原理 有别于基于用户的协同过滤和基于item的协同过滤,SlopeOne采用简单的线性模型估计用户对item的评分。如下图,估计UserB对ItemJ的偏好 图(1) 在真实情况下,该方法有如下几个...

xiaomin0322 ⋅ 37分钟前 ⋅ 0

LVM讲解

LVM是什么 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地...

李超小牛子 ⋅ 47分钟前 ⋅ 0

mysql更改密码、连接mysql、mysql常用命令

1. 更改mysql的root账户密码: mysql中root账户和系统root不是一个账户 1.1 更改环境变量PATH,增加mysql绝对路径 由于mysql安装目录为/usr/local/mysql/,所以系统不能直接使用mysql,需把/...

laoba ⋅ 48分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

猫耳m ⋅ 48分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

阿里云云栖社区 ⋅ 51分钟前 ⋅ 0

1.03-Maven中使用ueditor富文本编辑器

起因:在maven仓库未找到百度的ueditor的jar包 操作: 1.下载百度的ueditor的jar包 2.打开命令行,切换到ueditor的下载位置,运行一下命令: mvn install:install-file -Dfile=ueditor-1.1....

静以修身2025 ⋅ 57分钟前 ⋅ 0

几道Spring 面试题

1、BeanFactory 接口和 ApplicationContext 接口有什么区别? ApplicationContext 接口继承BeanFactory接口 Spring核心工厂是BeanFactory BeanFactory采取延迟加载,第一次getBean时才会初始...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部