zookeeper是如何实现数据无偏性和一致性性的

基于zookeeper和强一致性复制实现MySQL分布式数据库集群_爱学术
在线咨询:
欢迎留言吐槽:
基于zookeeper和强一致性复制实现MySQL分布式数据库集群
资源类型:pdf
资源大小:1.30MB
文档分类:工业技术
上传者:赵永军
【关键词】&&&
【出版日期】
【摘要】目前MySQL数据库间的复制技术主要有异步、半同步、同步等,这几种技术存在各自的局限性和适用场景,很难满足国家电网业务对分布式事务和性能的要求。结合国内外先进的框架和技术,利用zookeeper实现MySQL数据库间复制的监控和管理,并改进MySQL数据库的线程池,参考半同步技术模型实现数据库间强一致性复制,融合以上两种技术实现复制在毫秒级、高可靠和高性能的MySQL分布式数据库集群。
【刊名】《微型电脑应用》
匿名提问我要提问
举报原因:
如果该文档侵犯了你的合法著作权,请提交相关材料,这将有助于爱学术处理违规文档。
PDF转WORD下载
基于zookeeper和强一致性复制实现MySQL分布式数据库集群.pdf
普通用户享有每天2次免费转换,不限转换次数,转换时间在5分钟左右,让它转一会~发布于 03/20 16:03
主要通过事务日志以及数据快照来实现的。
事务日志记录了对Zookeeper的操作。以zxid命名,可以快速的定位到查询的事务。它还采用了磁盘预分配策略,未使用的部分写为0,避免每次追加数据都需要磁盘IO为文件开辟新空间。其每个日志文件大小固定为64M。
数据快照:是Zookeeper数据存储的另一个非常重要的机制。用来记录某一时刻Zookeeper全部内存数据内容,将其写入到指定的磁盘文件中,也是使用zxid作为文件后缀名,但是它没有采用磁盘预分配的策略。因此数据快照文件在一定程度上反应了当前Zookeeper的全量数据大小。
对于每一次的客户端操作都写入日志文件,同时更新Zookeeper的内存数据。当Zookeeper进行了若干次(snapcount)操作之后,会将内存中的全量数据dump也就导入到本地文件,这就叫数据快照。
为了避免Zookeeper中所有节点同时进行数据快照,Zookeeper采用过半随机的策略。开始快照时,首先关闭当前日志文件。重新创建一个新的日志文件。从内存中获取Zookeeper的全量数据和校验信息,并序列化写入到本地磁盘文件,以本次写入的第一个事务的ZXID为后缀。
数据恢复时会加载最近100个快照文件。之所以是100个事可能最近按个快照文件不能通过校验。则向前继续解析,直到第一个可以正确校验的快照文件截止。然后执行事务日志中的操作,此时即使不是最近一个快照文件,我们可以从快照文件中找到ZXID,便可以定位到具体事务文件从哪一个开始。
& 著作权归作者所有
人打赏支持
码字总数 92578
本文学习内容来自: 《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeep...
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 Curator Curator是Netflix公司开源的一套ZooKeeper客户端框架,作者是Jordan Zimmerman。 和ZkClient一样,Curator解决了很多...
在ZooKeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing grou......
分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分...
zookeeper 不是为高可用性设计的 由于要跨机房容灾,很多系统实际上是需要跨机房部署的。出于性价比的考虑我们通常会让多个机房同时工作,而不会搭建 N 倍的冗余。也就是说单个机房肯定撑不住...
引子 云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信...
qq592fbb5b34ad7
1、Zookeeper 的由来 在Hadoop生态系统中,许多项目的Logo都采用了动物,比如 Hadoop 和 Hive 采用了大象的形象,HBase 采用了海豚的形象,而从字面上来看 ZooKeeper 表示动物园管理员,所以...
大数据之路
菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...
一、ZooKeeper概述 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,是Google的Chubby一个开源实现,是Hadoop和Hbase的重要组件,它提供了一项基本服务:分布式锁服...
 Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper...
没有更多内容
加载失败,请刷新页面
设置ScrollView的高度,很多时候是需要根据内容的高度来填充的,需要 android:fillViewport="true"
测试准备 添加mybatis-config.xml全局配置文件 &?xml version="1.0" encoding="UTF-8" ?&&!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://......
寒武没有纪
Nvidia为GNU/Linux,FreeBSD和Solaris系统发布了其长期专有显示驱动程序的新版本,以增加与最新Linux内核的兼容性并修复各种错误。 虽然Nvidia 390.77专有图形驱动程序并不是主要的版本,但它...
补充:查看用户和用户组的方法 用户列表文件:/etc/passwd用户组列表文件:/etc/group 查看系统中有哪些用户:cut -d : -f 1 /etc/passwd查看可以登录系统的用户:cat /etc/passwd | grep -v...
http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
前两天看到有人留言问在什么情况下需要部署hadoop,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署hadoop。关于这个问题在很早之前的一篇分享文档也有说到这个问题,数据量...
左手的倒影
/*日09:36:55两个交换类排序算法:1.冒泡排序2.快速排序*/#include &iostream&#include &string&typedef int ElemT//思想:1.冒泡排序,从...
失落的艺术
分隔符匹配: 栈通常用于解析某种类型的文本串,通常,文本串是用于计算机语言写的代码行,而解析它们的程序就是编译器。 check()调用看StackX2类。 主程序中从用户那里不间断读取问本行,把...
沉迷于编程的小菜菜
vue-cli生成的webpack配置中有大量path.resolve,path.join,有些模糊。网上查了好久,终于发现一篇讲的比较全面的文章 1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以...
不负好时光
认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引入了一级C...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有博客分类:
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时有很高读写性能,5台在数据可靠性和读写性能方面平衡最好),那么用户的一个写操作,首先同步到N/2 + 1台服务器上,然后返回给用户,提示用户写成功。基于Quorum Based Protocol的数据同步协议决定了Zookeeper能够支持什么强度的一致性
强一致性(Strong Consistency)
在分布式环境下,满足强一致性的数据储存基本不存在,它要求在更新一个节点的数据,需要同步更新所有的节点。这种同步策略出现在主从同步复制的数据库中。但是这种同步策略,对写性能的影响太大而很少见于实践。因为Zookeeper是同步写N/2+1个节点,还有N/2个节点没有同步更新,所以Zookeeper不是强一致性的。
用户的数据更新操作,不保证后续的读操作能够读到更新后的值,但是最终会呈现一致性。牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值。牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可
CopyOnWriteArrayList是一个读写分离的并发ArrayList,它的遍历是弱一致性的,因为可以容忍并发修改,不会抛出ConcurrentModificationException,不像普通的集合,允许即时失败。
最终一致性
最终一致性本质上和弱一致性是一回事,因为一个数据存储系统满足弱一致性但是不满足最终一致性,那么这个系统的数据就是不正确,一个数据不正确的系统是一个无法交付使用的系统。Zookeeper满足最终一致性,只要数据同步到Quorum之外的节点就会达到最终一致性。
因果一致性
Zookeeper是否满足因果一致性,需要看客户端的编程方式。
不满足因果一致性的做法
1. A进程向Zookeeper的/z写入一个数据,成功返回
2. A进程通知B进程,A已经修改了/z的数据
3. B读取Zookeeper的/z的数据
4. 由于B连接的Zookeeper的服务器有可能还没有得到A写入数据的更新,那么B将读不到A写入的数据
满足因果一致性的做法
1. B进程监听Zookeeper上/z的数据变化
2. A进程向Zookeeper的/z写入一个数据,成功返回前,Zookeeper需要调用注册在/z上的监听器,Leader将数据变化的通知告诉B
3. B进程的事件响应方法得到响应后,去取变化的数据,那么B一定能够得到变化的值
4. 这里的因果一致性提现在Leader和B之间的因果一致性,也就是是Leader通知了数据有变化
第二种事件监听机制也是对Zookeeper进行正确编程应该使用的方法,所以,Zookeeper应该是满足因果一致性的
读你所写(写后读)一致性
严格来说,Zookeeper不满足读你所写一致性。因为在一个进程中,如下的操作序列是Zookeeper不能保证的, 会话建立-&写数据-&会话关闭-&会话建立-&读数据,最后的读数据不一定读到之前写的数据。
MongoDB是否满足读你所写一致性?MongoDB是满足的,因为它是连接信息跟线程绑定的,意思是说,读写线程跟MongoDB的连接信息是绑定的,读写线程获取连接优先连接到之前连接到的服务器。
会话一致性
在一个会话过程中,Zookeeper满足读你所写一致性。因为Zookeeper不同于MongoDB或者其它分布式系统,是读写数据结束立即释放连接。而Zookeeper是长连接的(用于监听Zookeeper的事件)。
Zookeeper提供了会话的自动重连机制,当客户端连接的Zookeeper服务器出现故障而不可达时,客户端会自动尝试重连到另外一台机器,客户端选择的那台服务器的数据状态不比之前连接的那台机器旧,因此会话重连也会保证会话一致性。
单调读一致性
严格来说,Zookeeper不满足单调读一致性。因为在一个进程中,如下的操作序列是Zookeeper不能保证的, 会话建立-&写数据-&读数据-&会话关闭-&会话建立-&读数据,最后的读数据不一定是之前写到的数据
单调写一致性
Zookeeper满足。只要Zookeeper写成功了一个操作,那么后面的写肯定是在Zookeeper提交了前一个写之前,而不管是否在同一个会话中,因为Zookeeper的写操作是全局顺序性。
读后写一致性
Zookeeper满足读后写一致性。当Zookeeper读到一个数据后,那么Zookeeper在写数据时,一致性在读到的之后的值进行更新。
浏览: 583860 次
来自: 北京
关于第一个reduceByKey对应的cache,shuffl ...
看了你的文章,updateStateByKey 这个方式的使用 ...
棒极啦,解决了我的问题。
你好,这个代码生成主要在,那个地方使用。
看楼主这么厉害的样子,请问楼主如何知道类库的版本呢?比如g++ ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'【图文】分布式一致性算法&zookeeper_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
分布式一致性算法&zookeeper
阅读已结束,下载本文到电脑
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 数据库系统中数据的一致性是指 的文章

 

随机推荐