新書推薦:
《
河流之齿
》
售價:HK$
59.8
《
新经济史革命:计量学派与新制度学派
》
售價:HK$
89.7
《
盗墓笔记之秦岭神树4
》
售價:HK$
57.3
《
战胜人格障碍
》
售價:HK$
66.7
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:HK$
82.8
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
|
內容簡介: |
本书从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了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服务。
|
關於作者: |
倪超,毕业于杭州电子科技大学,现阿里巴巴高级工程师,ZooKeeper资深专家,专攻淘宝网分布式一致性方向上的性能提升。
|
目錄:
|
目录
第1章分布式架构1
1.1从集中式到分布式1
1.1.1集中式的特点2
1.1.2分布式的特点2
1.1.3分布式环境的各种问题4
1.2从ACID到CAPBASE5
1.2.1ACID5
1.2.2分布式事务8
1.2.3CAP和BASE理论9
小结15
第2章一致性协议17
2.12PC与3PC17
2.1.12PC17
2.1.23PC21
2.2Paxos算法24
2.2.1追本溯源25
2.2.2Paxos理论的诞生26
2.2.3Paxos算法详解27
小结37
第3章Paxos的工程实践39
3.1Chubby39
3.1.1概述39
3.1.2应用场景40
3.1.3设计目标40
3.1.4Chubby技术架构43
3.1.5Paxos协议实现52
3.2Hypertable55
3.2.1概述55
3.2.2算法实现57
小结58
第4章ZooKeeper与Paxos59
4.1初识ZooKeeper59
4.1.1ZooKeeper介绍59
4.1.2ZooKeeper从何而来62
4.1.3ZooKeeper的基本概念62
4.1.4为什么选择ZooKeeper64
4.2ZooKeeper的ZAB协议65
4.2.1ZAB协议65
4.2.2协议介绍66
4.2.3深入ZAB协议71
4.2.4ZAB与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.3Java客户端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.1ZkClient120
5.4.2Curator130
小结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.6Master选举185
6.1.7分布式锁188
6.1.8分布式队列194
小结197
6.2ZooKeeper在大型分布式系统中的应用197
6.2.1Hadoop198
6.2.2HBase203
6.2.3Kafka207
6.3ZooKeeper在阿里巴巴的实践与应用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.4Watcher——数据变更的通知249
7.1.5ACL——保障数据的安全265
7.2序列化与协议272
7.2.1Jute介绍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.3ClientCnxn:网络IO295
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.6Leader选举321
7.6.1Leader选举概述321
7.6.2Leader选举的算法分析323
7.6.3Leader选举的实现细节328
7.7各服务器角色介绍335
7.7.1Leader335
7.7.2Follower338
7.7.3Observer339
7.7.4集群间消息通信339
7.8请求处理342
7.8.1会话创建请求343
7.8.2SetData请求351
7.8.3事务请求转发354
7.8.4GetData请求355
7.9数据与存储356
7.9.1内存数据356
7.9.2事务日志358
7.9.3snapshot——数据快照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.3JMX390
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.2Too many connections404
8.6.3磁盘管理405
小结405
附录AWindows平台上部署ZooKeeper406
附录B从源代码开始构建409
附录C各发行版本重大更新记录414
附录DZooKeeper源代码阅读指引418
|
|