设为首页 收藏本站
查看: 849|回复: 0

[经验分享] 《从Paxos到ZooKeeper:分布式一致性理论与实践》上市了

[复制链接]

尚未签到

发表于 2019-1-8 11:11:03 | 显示全部楼层 |阅读模式
  
  从出版社联系到如今出版,将近一年半时间,现在终于上市了,希望对有需要的同行朋友有帮助。读者朋友有任何关于本书的问题或建议,都可以通过以下途径来进行反馈:
  论坛:http://dwz.cn/AGFzp (QQ或新浪微博账号均可登录)
  通过微信:84518994
  联系到我。
  
  

    书名:《从Paxos到ZooKeeper》
    副标题:分布式一致性原理与实践
    出版社:电子工业出版社 博文视点
    作者: 倪超
    出版年: 2015-2-1
    详细介绍:http://dwz.cn/AGFzp
   
    天猫:http://dwz.cn/AosIk
    京东商城:http://dwz.cn/AnHjz

    互动出版网:http://dwz.cn/AGHcL

    当当网:http://dwz.cn/AGHeF
    亚马逊商店:http://dwz.cn/AGHhp
  

  

  

  内容简介
  《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服务。
  

  致谢
  首先要感谢现在的部门老大蒋江伟先生。第一次接触蒋江伟是在2011年,当时我还是一个实习生,参加了他的一个讲座“淘宝前台系统优化实践——吞吐量优化”,对其中关于“编写GC友好代码”的内容有不解之处,于是私下请教。他耐心的讲解令我至今记忆犹新。两年前,他全面负责中间件团队之后,给予了我更大的帮助和鼓励,使我得到了极大的进步,真的非常感谢。本书的问世,离不开他的推荐。也正是这一份写作的责任感,让我有决心和毅力来对整个ZooKeeper内容进行了一次全面的整理。在这里,衷心祝福蒋江伟先生带领中间件团队走向新的高度。
  其次,本书的写作,离不开各位小伙伴们的支持和帮助,他们是各领域的资深专家,我向他们征集了很多有营养的内容。在这里,按照章节顺序,依次表示感谢:许泽彬参与了“问题提出”的写作;侯前明对Paxos算法的前世今生进行的整理;段培乐对晦涩的Paxos协议进行了细致的讲解;姜宇向我提供了他对于分布式事务的见解;徐伟辰参与了分布式锁服务Chubby相关的写作;叶成旭提供了他在上家公司时对Hypertable的学习和研究成果;高伟细致地向我展示了Curator这一ZooKeeper客户端的使用;陈杰提供了他在“自动化的DNS服务”场景中的经验总结;曹龙参与了Hadoop相关内容的写作;邓明鉴则贡献了他对HBase的深刻见解;作为产品的开源负责人,庄晓丹和王强提供了对消息中间件Metamorphosis技术架构的讲解;李鼎则向我全面展示了RPC服务框架Dubbo的技术细节;楼江航向我提供了Canal和Otter这两个分布式产品中的ZooKeeper应用场景;李雨前、柳明和温朝凯则一起写了终搜在产品演进过程中对ZooKeeper的使用和改进;封仲淹参与了对其自主产品JStorm的技术剖析……是你们一遍又一遍地对内容进行修改,才使得本书内容更为丰满。
  另外,也要感谢温文鎏、王林、许泽彬、高伟和段培乐等人对全书的审阅,正是你们提出的宝贵建议,对完善本书提供了非常大的帮助。
  感谢现在的同事陆学慧先生,从2013年下半年开始,他全面接手对ZooKeeper的开发和运维,在他身上感受到的专业和创新精神让我备受鼓舞。
  另外,感谢我的第一个主管马震先生,是他的帮助为我指引了方向,让我有机会进入ZooKeeper的世界,并负责这个产品在公司的发展。尽管由于业务调整,马震先生已经转岗到其他部门,但依然由衷祝福他工作顺利。
  还要感谢我的同事,阿里巴巴店铺平台的侯前明先生。本来该书作者应该是我们两个人,但是由于期间他的家庭又增加了一个小生命,导致其不得不中途退出。从本书的选题到写作大纲的制定,他都倾注了不少心血,相信如果有他一起创作,本书内容会更加丰满、深刻。这里表达遗憾的同时,也向这位两个孩子的父亲送去祝福,祝愿他生活美满。
  感谢本书的责任编辑刘芸女士,是她反复审稿和编排,才能让本书的内容趋于完美。
  感谢本书的封面设计吴海燕女士,她的努力已经无需言表,在技术书上的这一前卫、极富视觉冲击力的封面设计,深深震撼到了我,也希望读者朋友们能够喜欢。
  尤其感谢本书的策划编辑张春雨先生。作为一个南方人,我很少有机会和那些有着一口北方腔的朋友交谈,第一次接到张春雨先生电话的时候,我才真正领略了北京腔,也正是他的邀请,才能让我有机会进行本书的撰写,同时在前后将近1年半的漫长写作过程中,也是他的帮助和鼓励,才让我坚持完成并不断完善本书的内容。在这里,也衷心祝愿张春雨先生事业更上一层楼。
  最后,还有我的父母,在过去的1年时间里,多次放假没有回家,尽管父母一直鼓励我专注工作,专注于自己的事业,但我深知他们内心对儿子的牵挂,在这里也深深地向他们道一声:“谢谢”,也谨以此书献给我最亲爱的爸爸妈妈。
      倪超

  2014年12月于杭州淘宝城

  

  

  书籍目录
  第1章分布式架构1
  1.1 从集中式到分布式1
  1.1.1 集中式的特点2
  1.1.2 分布式的特点2
  1.1.3 分布式环境的各种问题4
  1.2 从ACID到CAP/BASE5
  1.2.1 ACID5
  1.2.2 分布式事务8
  1.2.3 CAP和BASE理论9
  小结15
  第2章一致性协议17
  2.1 2PC与3PC17
  2.1.1 2PC17
  2.1.2 3PC21
  2.2 Paxos算法24
  2.2.1 追本溯源25
  2.2.2 Paxos理论的诞生26
  2.2.3 Paxos算法详解27
  小结37
  第3章Paxos的工程实践39
  3.1 Chubby39
  3.1.1 概述39
  3.1.2 应用场景40
  3.1.3 设计目标40
  3.1.4 Chubby技术架构43
  3.1.5 Paxos协议实现52
  3.2 Hypertable55
  3.2.1 概述55
  3.2.2 算法实现57
  小结58
  第4章ZooKeeper与Paxos59
  4.1 初识ZooKeeper59
  4.1.1 ZooKeeper介绍59
  4.1.2 ZooKeeper从何而来62
  4.1.3 ZooKeeper的基本概念62
  4.1.4 为什么选择ZooKeeper64
  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章使用ZooKeeper79
  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 ZkClient120
  5.4.2 Curator130
  小结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 Hadoop198
  6.2.2 HBase203
  6.2.3 Kafka207
  6.3 ZooKeeper在阿里巴巴的实践与应用213
  6.3.1 案例一消息中间件:Metamorphosis213
  6.3.2 案例二 RPC服务框架:Dubbo217
  6.3.3 案例三基于MySQL Binlog的增量订阅和消费组件:Canal219
  6.3.4 案例四分布式数据库同步系统:Otter223
  6.3.5 案例五轻量级分布式通用搜索平台:终搜226
  6.3.6 案例六实时计算引擎:JStorm238
  小结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 深入Jute275
  7.2.4 通信协议277
  7.3 客户端284
  7.3.1 一次会话的创建过程286
  7.3.2 服务器地址列表289
  7.3.3 ClientCnxn:网络I/O295
  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 Leader335
  7.7.2 Follower338
  7.7.3 Observer339
  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 JMX390
  8.3.1 开启远程JMX390
  8.3.2 通过JConsole连接ZooKeeper391
  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 connections404
  8.6.3 磁盘管理405
  小结405
  附录AWindows平台上部署ZooKeeper406
  附录B从源代码开始构建409
  附录C各发行版本重大更新记录414
  附录DZooKeeper源代码阅读指引418
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660698-1-1.html 上篇帖子: Zookeeper工作原理 下篇帖子: Springmvc+mybatis+shiro+Dubbo+ZooKeeper j2ee分布式架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表