从Paxos到Zookeeper

出版日期:2015-2-1
ISBN:9787121249677
作者:倪超
页数:422页

内容概要

倪超,阿里巴巴集团高级研发工程师,国家认证系统分析师,毕业于杭州电子科技大学计算机系。2010年加入阿里巴巴中间件团队担任研发实习岗位,一直从事ZooKeeper的开发与运维工作,从中学习与总结了不少分布式一致性相关的理论与实践经验,尤其对ZooKeeper及其相关技术有非常深入的研究。目前在中间件团队专家组任职产品经理,负责分布式产品的产品化和云计算化改造工作。
新浪微博:@ni掌柜

书籍目录

第1章分布式架构
1
1.1 从集中式到分布式
1
1.1.1 集中式的特点
2
1.1.2 分布式的特点
2
1.1.3 分布式环境的各种问题
4
1.2 从ACID到CAP/BASE
5
1.2.1 ACID
5
1.2.2 分布式事务
8
1.2.3 CAP和BASE理论
9
小结
15
第2章一致性协议
17
2.1 2PC与3PC
17
2.1.1 2PC
17
2.1.2 3PC
21
2.2 Paxos算法
24
2.2.1 追本溯源
25
2.2.2 Paxos理论的诞生
26
2.2.3 Paxos算法详解
27
小结
37
第3章Paxos的工程实践
39
3.1 Chubby
39
3.1.1 概述
39
3.1.2 应用场景
40
3.1.3 设计目标
40
3.1.4 Chubby技术架构
43
3.1.5 Paxos协议实现
52
3.2 Hypertable
55
3.2.1 概述
55
3.2.2 算法实现
57
小结
58
第4章ZooKeeper与Paxos
59
4.1 初识ZooKeeper
59
4.1.1 ZooKeeper介绍
59
4.1.2 ZooKeeper从何而来
62
4.1.3 ZooKeeper的基本概念
62
4.1.4 为什么选择ZooKeeper
64
4.2 ZooKeeper的ZAB协议
65
4.2.1 ZAB协议
65
4.2.2 协议介绍
66
4.2.3 深入ZAB协议
71
4.2.4 ZAB与Paxos算法的联系与区别
77
小结
78
第5章使用ZooKeeper
79
5.1 部署与运行
79
5.1.1 系统环境
79
5.1.2 集群与单机
80
5.1.3 运行服务
84
5.2 客户端脚本
88
5.2.1 创建
88
5.2.2 读取
89
5.2.3 更新
90
5.2.4 删除
91
5.3 Java客户端API使用
91
5.3.1 创建会话
91
5.3.2 创建节点
95
5.3.3 删除节点
99
5.3.4 读取数据
100
5.3.5 更新数据
109
5.3.6 检测节点是否存在
113
5.3.7 权限控制
115
5.4 开源客户端
120
5.4.1 ZkClient
120
5.4.2 Curator
130
小结
162
第6章ZooKeeper的典型应用场景
163
6.1 典型应用场景及实现注
163
6.1.1 数据发布/订阅
164
6.1.2 负载均衡
166
6.1.3 命名服务
170
6.1.4 分布式协调/通知
173
6.1.5 集群管理
179
6.1.6 Master选举
185
6.1.7 分布式锁
188
6.1.8 分布式队列
194
小结
197
6.2 ZooKeeper在大型分布式系统中的应用
197
6.2.1 Hadoop
198
6.2.2 HBase
203
6.2.3 Kafka
207
6.3 ZooKeeper在阿里巴巴的实践与应用
213
6.3.1 案例一消息中间件:Metamorphosis
213
6.3.2 案例二 RPC服务框架:Dubbo
217
6.3.3 案例三基于MySQL Binlog的增量订阅和消费组件:Canal
219
6.3.4 案例四分布式数据库同步系统:Otter
223
6.3.5 案例五轻量级分布式通用搜索平台:终搜
226
6.3.6 案例六实时计算引擎:JStorm
238
小结
242
第7章ZooKeeper技术内幕
243
7.1 系统模型
243
7.1.1 数据模型
243
7.1.2 节点特性
244
7.1.3 版本——保证分布式数据原子性操作
246
7.1.4 Watcher——数据变更的通知
249
7.1.5 ACL——保障数据的安全
265
7.2 序列化与协议
272
7.2.1 Jute介绍
272
7.2.2 使用Jute进行序列化
273
7.2.3 深入Jute
275
7.2.4 通信协议
277
7.3 客户端
284
7.3.1 一次会话的创建过程
286
7.3.2 服务器地址列表
289
7.3.3 ClientCnxn:网络I/O
295
7.4 会话
298
7.4.1 会话状态
298
7.4.2 会话创建
299
7.4.3 会话管理
304
7.4.4 会话清理
307
7.4.5 重连
309
7.5 服务器启动
311
7.5.1 单机版服务器启动
312
7.5.2 集群版服务器启动
315
7.6 Leader选举
321
7.6.1 Leader选举概述
321
7.6.2 Leader选举的算法分析
323
7.6.3 Leader选举的实现细节
328
7.7 各服务器角色介绍
335
7.7.1 Leader
335
7.7.2 Follower
338
7.7.3 Observer
339
7.7.4 集群间消息通信
339
7.8 请求处理
342
7.8.1 会话创建请求
343
7.8.2 SetData请求
351
7.8.3 事务请求转发
354
7.8.4 GetData请求
355
7.9 数据与存储
356
7.9.1 内存数据
356
7.9.2 事务日志
358
7.9.3 snapshot——数据快照
364
7.9.4 初始化
368
7.9.5 数据同步
372
小结
376
第8章ZooKeeper运维
379
8.1 配置详解
379
8.1.1 基本配置
379
8.1.2 高级配置
380
8.2 四字命令
384
8.3 JMX
390
8.3.1 开启远程JMX
390
8.3.2 通过JConsole连接ZooKeeper
391
8.4 监控
397
8.4.1 实时监控
397
8.4.2 数据统计
398
8.5 构建一个高可用的集群
398
8.5.1 集群组成
398
8.5.2 容灾
399
8.5.3 扩容与缩容
402
8.6 日常运维
402
8.6.1 数据与日志管理
402
8.6.2 Too many connections
404
8.6.3 磁盘管理
405
小结
405
附录AWindows平台上部署ZooKeeper
406
附录B从源代码开始构建
409
附录C各发行版本重大更新记录
414
附录DZooKeeper源代码阅读指引
418

作者简介

《Paxos到Zookeeper:分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。全书共8章,分为五部分:第一部分(第1章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运行,并结合真实的分布式应用场景,总结了ZooKeeper使用的最佳实践;第四部分(第7章)对ZooKeeper的架构设计和实现原理进行了深入分析,包含系统模型、Leader选举、客户端与服务端的工作原理、请求处理,以及服务器角色的工作流程和数据存储等;第五部分(第8章)介绍了ZooKeeper的运维实践,包括配置详解和监控管理等,重点讲解了如何构建一个高可用的ZooKeeper服务。


 从Paxos到Zookeeper下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计7条)

  •     Zookeeper+Spring跨机房容灾系统以及灰度发布课程学习地址:http://www.xuetuwuyou.com/course/20一、课程使用到的软件及版本: centos系统,zookeeper 3.4.6,Spring4二、课程目标:1、熟练开发各种分布式应用2、掌控zookeeper java客户端开发3、熟练运用curator的各种特性三、课程目录第1节、zookeepeer集群简介,跨机房容灾系统架构设计第2节、zookeeper的java客户端与spring整合(上)第3节、zookeeper的java客户端与spring整合(下)第4节、zookeeper-3watcher使用(上)第5节、zookeeper-3watcher使用(下)第6节、Curator介绍与使用第7节、zookeeper跨机房容灾系统设计两种方案详细讲解第8节、zookeeper跨机房容灾具体实现第9节、zookeeper跨机房容灾系统的调试,以及分布式锁的简单介绍第10节、zookeeper分布式锁(上)第11节、zookeeper分布式锁(下)第12节、zookeeper实现灰度指定服务器发布第13节、课程总结以及未来展望
  •     第一章可以读读,讲的大概,读完可能也没说很么收货,反正可以了解下,听听吹牛;第二章完全没讲清楚,不知所谓,整体没有条理,上下文没有逻辑,语言使用不严谨,想加什么加什么,理论都没说清,更不要说深入分析了;第三章在第二章没懂的情况下去看第三章就没意义了,看懂了第二章去看第三章也还是没用,呵呵。这两章建议跳过,直接看http://weibo.com/ttarticle/p/show?id=2309403952892003376258,要不就看完再来看这两章;第四章讲zookeeper,在看了前面那片文章的基础上,可以看看这一章,不过有些地方还是没写明白,需要自己多理理,前后理顺,再次说,没有深入的内容,而且作者喜欢下各种各样结论,没理由的下结论,看着好累啊;第五章,讲接口使用,这个简单了,随便翻翻就是了,作者说“因为我们公司都用java6,所以你们最好都用6”,唉要服了。然后,一个锁的使用,不用finally,不懂为啥,不担心出问题吗?
  •     因为本人在实际的项目中并未真正涉及到去部署zookeeper相关的应用,只是想了解内部具体的原理和机制,首先前面几章从2PC到3PC再到Paxos,细致的讲述了其中的原理,很清晰,后来就介绍了ZAB协议,即zookeeper的原理,也很到位,整本书的后半部分结合实际的部署情况讲解zookeeper其中的原理及算法,如果不是实际中需要用的话,看后的效果不是很明显,如果只是想我一样想整体把原理的话,前半部份即可。总之,此书不错,适合反复阅读!

精彩短评 (总计50条)

  •     打五星的都是托儿。本以为源码解析是重点。。。第7章值得看看。
  •     挺好的,对分布式协议和ZK的技术细节都讲得不错
  •     分布式协议,zookeeper典型应用场景重点关注
  •     想要了解分布式的原理
  •     感觉很好的一本书,在国内的技术书里面已经算很好了,让我了解了ZooKeeper原理,跟着其看ZooKeeper的源码
  •     入门级别的书,可以学会怎么使用 API,开源库。了解算法原理。
  •     工具书
  •     写书能认真点吗? 东拼西凑就能成书?还有,第一次听说b树就是一个大型的hashmap的。
  •     建议阅读顺序: I. -ZooKeeper相关: 1、5、6、7章(建议中间穿插第8章阅读). II. -分布式一致性协议相关: 2、3、4. 如果直接从前往后读, 第II部分一般会云里雾里, 不知道这些协议设计的目的是解决什么样的问题, 为什么这样设计? 艰涩难懂, 很容易放弃, 浪费了后面大量的精华. 反而是先读了后半部分在回过头来查看协议理论, 在了解了ZK的基本使用场景和设计理念后, 才能逐渐明白一致性协议设计的初衷. 全书的入门在1、4、5章: 大致讲解分布式系统, 一致性原理解决的问题以及ZooKeeper的基本概念. 精华部分在3、6、7章:透彻、深入地讲解一致性协议Paxos, ZooKeeper的典型、经过实践检验的使用场景以及其实现原理.
  •     不适合分布式入门用,买书时没有考虑到这个问题,买回来半猜半蒙的读完的发现需要很多基础理论的支持,只能死记硬背记结论了,很多原理还是搞不清
  •     整体还行,有些基础性的东西,本来我觉得其实不应该出现这个书籍里面的。对zookeeper应用场景以及源代码剖析的章节,写的不错。
  •     分布式一致性协议,zk使用,源码,配置,部署运维等等方方面面讲得挺细的
  •     虽然书名是 从 Paxos 到 Zookeeper,但是正如封面展示的那样,多于 80% 的内容都是讲 Zookeeper 的
  •     ZK的使用,运行机制都描述得比较详细清楚
  •     不错,学到很多。 美中不足的是有80多页的client api demo。
  •     讲的很详细,阅读之后能够对ZooKeeper有很详细的了解,包括实现原理、源码和部分示例代码
  •     不错,适合入门,读过之后大体上了解了zk的原理,可以cover一部分遇到的问题。整体略显啰嗦,压缩成200页后,估计不错
  •     分布式和paxos入门读了下,应该还算不错的。
  •     正在使用zookeeper,不错的书籍
  •     不错的一本书也是国内为数不多的一本,很多细节都讲的很清楚了。虽然在如何应用,如何运维上讲的有点乱,也不突出,但胜在原理细节方面,实在不清楚,书中也有源码阅读指引,对于想深入了解原理的人来说值得推荐
  •     关于Zookeeper很全面的书吧,跳过了前三章关于Paxos的部分
  •     zk原理部分介绍得不深刻,应用部分也过于冗余
  •     一致性设计是所有系统设计要考虑的问题,同时到处都能看到zk的身影,这是促使我买这本书和学习的原因。paxos算法讲的不是特别清楚,连适合什么场景都没有提到,不知道作者是有遗漏还是没有进行过总结。zk部分总体还是可以的,介绍了zk的原理和应用,后面的部分暂时用不到,还没有看。开卷有益,推荐给对分布式系统、一致性、多机协同、zk感兴趣的小伙伴。因为喜欢看实体书,没有在网上搜博文和看资料,是不是博文集,我就不知道了。
  •     只能算是入门级
  •     强力推荐,分布式应用好书
  •     太装逼,太啰嗦了
  •     Zookeeper是一个高性能的分布式协调框架. 保证最终一致性, 保证同一个session的事务顺序. 通过提供类似于Unix文件系统的ZNode(永久节点, 暂态节点和序列节点)和Watch机制, 来实现多种分布式协调的功能, 数据发布订阅, 集群配置管理, 机器在线监控, 负载均衡, 分布式锁等. 通过Zookeeper能够解耦分布式机器间的复杂关系. 这本书讲比较初级, 适合开阔眼界. 主要内容有分布式的几个协议, Zookeeper的简介, 配置和简单使用, Zookeeper能够实现的分布式功能(重点!), Zookeeper在当前hadoop, HBase, Kafka等几个重量级的框架中的使用, Zookeeper在淘宝中的使用. Zookeeper内部结构和运维.
  •     买的时候挺好奇zookeeper怎么就写出400页来的,翻了一个星期,精华部分三块:第4章的zab协议、第5章的Curator(目前用的最多也最好的客户端)、第7章的源码分析(阿里系好像喜欢抠代码),第3章完全可以删掉,很多地方拉拉杂杂写了一堆就是其实和主题关系不大。另外应该把zookeeper的特性单独列一个章节介绍一下,再由此推导出典型应用场景思路更清晰一些。
  •     还行吧..印刷的太差了,那股臭味真是熏得游人醉..
  •     关于ZK的一切,有这么一本就够了
  •     3月16日更新 终于读完了。本书内容比想象中的要多,从算法到源码,该书都有涉及,眼界大开。 ======================================= Zookeeper是工作中用到基本组件,这本书介绍了Zookeeper的底层原理和协议,需要有一定功底的人才能读透。
  •     作为入门级别,可以让读者对zookeeper有个整体的认识,介绍了zk的基本配置、API、开源客户端(ZKClient, Curator)、应用场景(介绍得比较简单)、运维相关的基本知识。第七章讲解了zk的技术内幕,有点难懂,看不懂可以跳过。
  •     看了大半本书 对zookeeper了解深入了一些
  •     讲的比较基础
  •     1zk是分布式系统,解决一致性问题,用途广泛,包括hbase等都在使用 2要了解zk算法,先了解paxos算法,了解拜占庭将军问题 3在大数据时代,一致性将是一个难点。
  •     详细介绍了Paxos协议,zookeeper使用的ZAB协议,光是这部分就值回书钱,而且还有zookeeper使用场景的介绍和源码分析.一致性问题是分布式中的一大难题,这个搞定分布式中一半的难题豁然开朗看其余的部分也会很有帮助.
  •     循序渐进,更好的理解分布式一致性
  •     这本书我认为还是很好的,从实现原理,到使用场景,详尽,易于理解。zookeeper之于分布式,地位举足轻重,推荐这本书去深入了解zk~
  •     入个门。
  •     写得略晦涩。
  •     zookeeper入门书籍.对zookeeper的适用场景写的很详细。 介绍paxos的章节稍微死板一点;指望书中内容讲明白paxos是不可能的。 书中有几处打印错误;图书纸张有点单薄,油墨味稍微重了点。 不过和50+的标价比,还是很值得的。
  •     这本书真是太好了。从头到尾精读的,非常精细的解释。尤其对chubby和第七章印象深刻。等实践过后,再总结读书笔记。
  •     市面上仅有的ZooKeeper的中文书,看完会有基本的了解
  •     ZooKeeper提供了一个解决分布式数据一致性问题的典型方案,分布式应用可以基于ZooKeeper实现如数据发布订阅、负载均衡、命名服务、分布式协调通知、集群管理、Master选举、分布式锁等功能。简单概括,ZooKeeper是个解决分布式环境下数据一致性的神器,如果有相关需求,可以考虑是否可以使用ZooKeeper。
  •     原理介绍性质
  •     还好 从原理层面到应用层面都有较细致的讲解
  •     前几章理论讲的比较一般,后面的原理和代码讲的比较详细,挺适合入门
  •     看得出来,作者作为工程师ZooKeeper理解还是很深入和全面的,但书写出来就比较内容多而杂了,缺乏清晰的规划
  •     没看完没看懂
  •     同事写的,我觉得还是可以的呀,比较全面,可以当参考书来翻翻。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024