ZooKeeper:分布式过程协同技术详解
基本信息
- 原书名:ZooKeeper: Distributed Process Coordination
- 作者: (美)荣凯拉(Flavio Junqueira)(美)里德(Benjamin Reed)
- 译者: 谢超 周贵卿
- 丛书名: O’Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111524311
- 上架时间:2016-2-19
- 出版日期:2016 年1月
- 开本:16开
- 页码:209
- 版次:1-1
- 所属分类:计算机 > 操作系统 > 操作系统理论 > 分布式操作系统

编辑推荐
如果无法使分布式应用协同工作,构建分布式应用就会非常困难。本书将会为你展示Apache ZooKeeper如何帮助你管理分布式系统,以使你可以更关注应用本身的逻辑。即使拥有ZooKeeper,实现协作任务也并非一帆风顺,不过本书提供的一些好的方法和实践经验为你奠定了良好的开端,同时也为开发人员和运维人员提供了一些使用中的注意事项。
在本书中,ZooKeeper的贡献者Flavio Junqueira和Benjamin Reed介绍了分布式系统的概念、ZooKeeper编程开发的技巧以及维护ZooKeeper服务所需要的知识。
内容简介
计算机书籍
如果无法使分布式应用协同工作,构建分布式应
用就会非常困难。《ZooKeeper(分布式过程协同技术
详解)》将会为你展示Apackle Zookeeper如何帮助
你管理分布式系统,以使你可以*关注应用本身的逻
辑。即使拥有Zookeeper,实现协作任务也并非一帆
风顺,不过本书提供的一些好的方法和实践经验为你
奠定了良好的开端,同时也为开发人员和运维人员提
供了一些使用中的注意事项。
在本书中,Zookeeper的贡献者Flavio
Junqueira(荣凯拉)和Benjamin Reed(里德)介
绍了分布式系统的概念、Zookeeper编程开发的技巧
以及维护Zookeeper服务所需要的知识。
作译者
Benjamin Reed 是一位负责Facebook中所有细节工作的软件工程师。他以前的职位包括雅虎研究院首席研究科学家(负责所有大的方向)和IBM Almaden Research的研究人员(负责所有事情,无论大小)。他拥有加州大学圣克鲁斯分校计算机科学博士学位。他从事的工作涉及分布式计算、大数据处理、分布式存储、系统管理和嵌入式框架等领域。他参加了各种开源项目,如Hadoop和Linux操作系统等。他帮助启动了由Apache软件基金会主办的项目如Pig、ZooKeeper和BookKeeper。
目录
第一部分 ZooKeeper的概念和基础
第1章 简介
1.1 ZooKeeper的使命
1.1.1 ZooKeeper改变了什么
1.1.2 ZooKeeper不适用的场景
1.1.3 关于Apache项目
1.1.4 通过ZooKeeper构建分布式系统
1.2 示例:主-从应用
1.2.1 主节点失效
1.2.2 从节点失效
1.2.3 通信故障
1.2.4 任务总结
1.3 分布式协作的难点
1.4 ZooKeeper的成功和注意事项
第2章 了解ZooKeeper
2.1 ZooKeeper基础
2.1.1 API概述
2.1.2 znode的不同类型
2.1.3 监视与通知
译者序
在实际开发分布式应用时,开发人员与运维人员都会花费大量时间和精力来处理异构系统中的协作通信问题。这也许并不是你想要的,你最关心的是战略业务是否正常,能否更快更好地提供自己主营业务的系统和服务。因此对分布式系统的协作处理上,需要专门处理协作问题的系统来帮助我们。
ZooKeeper是Google的Chubby项目的开源实现,它曾经作为Hadoop的子项目,在大数据领域得到广泛应用。ZooKeeper以Fast Paxos算法为基础,同时为了解决活锁问题,对Fast Paxos算法进行了优化,因此也可以广泛用于大数据之外的其他分布式系统,为大型分布式系统提供可靠的协作处理功能。比如小米公司的米聊,其后台就采用了ZooKeeper作为分布式服务的统一协作系统。而阿里公司的开发人员也广泛使用ZooKeeper,并对其进行了适当修改,开源了一款TaoKeeper软件,以适应自身业务需要。
本书首先从分布式系统的基本概念入手,然后介绍实际开发编程的接口和技巧,最后谈及运维人员所关心的配置维护知识。翻译过程中,译者对原版书籍通读一遍,对ZooKeeper又有了新的认识和理解,获得了分布式应用构建中需要注意的很多细节,这本书可谓是实际开发和维护中的一本最佳参考书籍。对于这么优秀的一本书,翻译时译者惶恐于译文对读者理解的影响,尽最大努力保持原文意思,以便读者真正能够领悟ZooKeeper的精髓。
由于译者水平有限,译文中的不当之处在所难免,恳请广大读者批评指正。
谢超 周贵卿
前言
即使有了ZooKeeper,但开发中分布式处理的环节并不是微不足道的事情,因此我们编写了这本书,通过这本书可以让你快速熟悉如何通过Apache ZooKeeper构建分布式系统。我们从基本的概念入手,这样可以使你觉得自己就像是分布式系统的专家一样,在你看到一系列需要注意的警告时,你可能会有一些沮丧,不过不用担心,如果你能够很好地理解我们所阐述的关键点,你已经走在构建良好的分布式系统的正确道路上了。
目标读者
本书适用于分布式系统的开发人员,以及使用ZooKeeper进行生产经营的应用程序运维人员。我们假设读者具备Java语言的知识,并且本书为读者提供了关于分布式系统中概念的大量背景知识,以便你更好地使用ZooKeeper。
本书内容介绍
第一部分阐述了Apache ZooKeeper这类系统的设计目的和动机,并介绍分布式系统的一些必要背景知识。
第1章介绍了ZooKeeper可以做什么,以及其设计如何支撑这些任务。
第2章介绍了基本概念和基本组成模块,并通过命令行工具的具体操作介绍ZooKeeper可以做什么。
第二部分阐述程序员所需要掌握的ZooKeeper库调用方法和编程技巧,虽然对系统运维人员来说也有一定价值,但也可以不选择阅读。这一部分主要以Java语言的API为主,因为Java是非常流行的开发语言,如果你之前使用其他开发语言,可以通过这一部分内容来学习基本的技术和方法调用,之后通过其他语言来实现。另外,我们也为C语言的应用开发人员提供了一章内容的开发方法。
第3章介绍Java语言的API。
第4章解释如何跟踪和处理ZooKeeper中的状态变更情况。
第5章介绍如何在系统或网络故障时恢复应用。
第6章介绍为了避免故障要注意的一些繁杂却很重要的场景。
第7章介绍C语言版的API,该章也可以作为非Java语言实现的ZooKeeper API的基础,对非Java语言的开发人员非常有帮助。
第8章介绍一款更高层级的封装的ZooKeeper接口。
第三部分主要适用于ZooKeeper的系统运维人员,尤其在第9章章中即便对开发人员也很有价值。
第9章介绍ZooKeeper的作者们在设计时所采用的方案,这些知识对运维管理非常有帮助。
第10章介绍如何对ZooKeeper进行配置。
本书约定
本书中采用了以下排版约定: