书籍详情

深入理解分布式共识算法

深入理解分布式共识算法

作者:释慧利

出版社:清华大学出版社

出版时间:2023-03-01

ISBN:9787302630036

定价:¥89.80

购买这本书可以去
内容简介
  《深入理解分布式共识算法》结合理论知识、算法模拟和源码解析,从多个维度详细剖析分布式共识算法的基本原理和应用实践,涵盖分布式共识算法的方方面面。同时《深入理解分布式共识算法》对共识算法开发中的重点和难点问题进行了重点讲解,并提供精心准备的练习题供读者巩固和提高所学的知识。另外,作者针对重点内容录制了教学视频,以帮助读者高效、直观地学习。《深入理解分布式共识算法》共10章,分为4篇。第1篇分布式相关概念与定理,主要介绍集群、状态机和共识等相关概念,以及BASE和CAP理论等相关知识;第2篇常见分布式共识算法原理与实战,主要介绍二阶段提交(2PC)协议、三阶段提交(3PC)协议、Paxos、ZAB和Raft等相关知识;第3篇Paxos变种算法集合,主要介绍Paxos变种算法的发展历程,以及Fast Paxos和EPaxos等变种算法的相关知识;第4篇番外——FLP 定理,简要介绍FLP定理的相关知识。《深入理解分布式共识算法》按照“背景知识→运行过程→算法模拟→证明脉络”的过程层层推进,介绍算法知识,并为每种算法提供经典类库源码解析。《深入理解分布式共识算法》内容丰富,讲解由浅入深,尤其适合刚开始接触分布式开发的人员全面学习共识算法,也适合资深架构人员借鉴设计思路,还适合中间件开发人员、系统运维工程师、相关培训学员和高校相关专业的学生阅读。
作者简介
  释慧利Java高级工程师,技术负责人。互联网金融行业从业多年,腾讯云开发者社区超人气作者,有丰富的中台和中间件项目开发经验。
目录
第1篇  分布式相关概念与定理
第1章  分布式共识算法概述 2
1.1  分布式架构的演进 2
1.2  集群与状态机 3
1.2.1  分布式与集群 3
1.2.2  容错能力 4
1.2.3  状态机简介 4
1.3  共识简介 5
1.3.1  共识的概念 5
1.3.2  共识与集群 5
1.3.3  共识与副本 6
1.3.4  共识与一致性 7
1.3.5  共识算法的发展历程 7
1.4  拜占庭故障 7
1.4.1  拜占庭的背景知识 7
1.4.2  拜占庭解决方案 8
1.5  本章小结 10
第2章  从ACID和BASE到CAP 11
2.1  ACID——追求一致性 11
2.2  BASE理论——追求可用性 11
2.2.1  BASE理论的三个方面 12
2.2.2  BASE理论的应用 12
2.3  CAP——分布式系统的PH试纸 13
2.3.1  CAP定理 14
2.3.2  为什么C、A、P三者不可兼得 15
2.3.3  CAP的应用 16
2.4  本章小结 16
第2篇  常见分布式共识算法原理与实战
第3章  2PC、3PC——分布式事务的解决方案 18
3.1  二阶段提交协议 18
3.1.1  二阶段提交协议简述 18
3.1.2  故障恢复 20
3.1.3  二阶段提交协议的优缺点 23
3.1.4  空回滚和防悬挂 23
3.2  三阶段提交协议 25
3.2.1  三阶段提交协议简述 25
3.2.2  故障恢复 28
3.2.3  三阶段提交协议的优缺点 29
3.3  二阶段提交协议在Seata中的应用 29
3.3.1  AT模式 30
3.3.2  事务管理者 32
3.3.3  资源管理者 35
3.3.4  事务协调者 42
3.4  本章小结 46
第4章  Paxos——分布式共识算法 48
4.1  Paxos的诞生 48
4.2  初探Paxos 49
4.2.1  基本概念 49
4.2.2  角色 50
4.2.3  阶段 51
4.3  Paxos详解 54
4.3.1  Paxos模拟 54
4.3.2  Prepare阶段 55
4.3.3  Accept阶段 56
4.3.4  活锁 58
4.3.5  提案编号选定 59
4.4  Paxos的推导过程 60
4.4.1  推导 60
4.4.2  多数派的本质 63
4.5  Multi Paxos详解 64
4.5.1  Multi Paxos简介 64
4.5.2  Leader选举 66
4.6  工程实现 68
4.6.1  一些优化 68
4.6.2  对读请求进行优化 70
4.6.3  并行协商 71
4.6.4  Instance的重确认 72
4.6.5  幽灵日志 73
4.7  Paxos在PhxPaxos中的应用 74
4.7.1  PhxPaxos分析 75
4.7.2  PhxPaxos初始化 80
4.7.3  协商提案 82
4.7.4  数据同步 91
4.7.5  Master选举 95
4.7.6  成员变更 98
4.8  本章小结 99
4.9  练习题 100
第5章  ZAB——ZooKeeper技术核心 101
5.1  Chubby简介 101
5.1.1  Chubby是什么 101
5.1.2  为什么选择锁服务 102
5.1.3  需求分析 103
5.1.4  Chubby集群架构 104
5.2  ZooKeeper的简单应用 107
5.2.1  ZooKeeper是什么 107
5.2.2  数据节点 108
5.2.3  Watch机制 110
5.2.4  ACL权限控制 111
5.2.5  会话 113
5.2.6  读请求处理 113
5.3  ZAB设计 114
5.3.1  ZooKeeper背景分析 114
5.3.2  为什么ZooKeeper不直接使用Paxos 116
5.3.3  ZAB简介 118
5.3.4  事务标识符 120
5.3.5  多数派机制 121
5.3.6  Leader周期 121
5.4  ZAB描述 122
5.4.1  Leader选举阶段 122
5.4.2  成员发现阶段 122
5.4.3  数据同步阶段 123
5.4.4  消息广播阶段 124
5.4.5  算法小结 124
5.5  ZooKeeper中的ZAB实现 125
5.5.1  选举阶段 126
5.5.2  成员发现阶段 129
5.5.3  数据同步阶段 130
5.5.4  消息广播阶段 133
5.5.5  算法小结 134
5.5.6  算法模拟 135
5.5.7  提案的安全性 139
5.6  ZooKeeper成员变更 140
5.6.1  变更过程 141
5.6.2  并行变更 142
5.7  ZooKeeper源码实战 142
5.7.1  启动 142
5.7.2  Leader选举 144
5.7.3  Follower和Leader初始化 148
5.7.4  成员发现阶段 151
5.7.5  数据同步阶段 154
5.7.6  消息广播阶段 157
5.8  本章小结 162
5.9  练习题 163
第6章  Raft——共识算法的宠儿 164
6.1  Raft简介 164
6.1.1  Raft诞生的背景 164
6.1.2  可理解性 165
6.1.3  基本概念 165
6.2  Raft算法描述 167
6.2.1  Leader选举 167
6.2.2  日志复制 170
6.2.3  日志对齐 173
6.2.4  幽灵日志 174
6.2.5  安全性 175
6.2.6  Raft小结 176
6.3  算法模拟 177
6.3.1  Leader选举 177
6.3.2  日志复制 178
6.3.3  日志对齐 180
6.4  成员变更 181
6.4.1  联合共识 182
6.4.2  工程实践 185
6.4.3  单个成员变更 188
6.5  日志压缩 191
6.6  网络分区 192
6.6.1  成员变更中的分区 192
6.6.2  对称网络分区 193
6.6.3  非对称网络分区 194
6.7  非事务请求 194
6.7.1  线性一致性 195
6.7.2  Leader Read方案 196
6.7.3  Raft Log Read方案 196
6.7.4  Read Index方案 196
6.7.5  Lease Read方案 197
6.8  Parallel Raft并行协商 198
6.8.1  乱序协商 199
6.8.2  Merge阶段 200
6.9  Raft源码实战——SOFAJRaft 202
6.9.1  SOFAJRaft简介 203
6.9.2  Leader选举 205
6.9.3  日志复制 212
6.9.4  非事务请求 219
6.9.5  成员变更 221
6.10  本章小结 223
6.10.1  Raft与Paxos的异同 223
6.10.2  Raft与ZAB的异同 224
6.11  练习题 225
第3篇  Paxos变种算法集合
第7章  Paxos变种算法的发展史 228
7.1  Disk Paxos简介 228
7.1.1  算法描述 229
7.1.2  Disk Paxos小结 230
7.2  Cheap Paxos简介 230
7.2.1  算法描述 231
7.2.2  Cheap Paxos小结 232
7.3  Generalized Paxos简介 233
7.4  Stoppable Paxos简介 234
7.5  Mencius简介 235
7.6  Vertical Paxos简介 237
7.6.1  算法描述 237
7.6.2  算法模拟 238
7.6.3  Vertical Paxos小结 240
7.7  本章小结 240
第8章  Fast Paxos——C/S架构的福音 242
8.1  Fast Paxos简介 242
8.1.1  背景介绍 242
8.1.2  基本概念 243
8.2  算法详述 244
8.2.1  算法设计 244
8.2.2  Fast Paxos模拟 245
8.2.3  Learn阶段 246
8.3  Quorum推导 246
8.3.1  决策条件 247
8.3.2  计算Quorum 248
8.4  Classic Round简介 249
8.4.1  提案冲突 249
8.4.2  选择提案值的规则 250
8.4.3  证明 252
8.5  提案恢复 253
8.5.1  基于协调者的恢复 253
8.5.2  基于非协调者的恢复 254
8.6  本章小结 254
第9章  EPaxos——去中心化共识 255
9.1  EPaxos简介 255
9.1.1  共识算法对比 255
9.1.2  认识EPaxos算法 256
9.1.3  基本概念 258
9.2  协商协议 260
9.2.1  Prepare阶段 260
9.2.2  PreAccept阶段 263
9.2.3  Paxos-Accept阶段 264
9.2.4  Commit阶段 265
9.2.5  特殊的Quorum 266
9.3  执行协议 268
9.3.1  互相依赖 268
9.3.2  执行过程 269
9.3.3  拓扑排序 270
9.3.4  寻找强连通分量 271
9.3.5  EPaxos排序 272
9.4  算法证明 272
9.4.1  执行的一致性 273
9.4.2  执行的顺序性 274
9.5  Optimized-EPaxos简介 274
9.5.1  Prepare阶段 275
9.5.2  论证QuorumFast 278
9.6  算法模拟 279
9.6.1  协商协议 279
9.6.2  Prepare阶段 282
9.7  成员变更 284
9.8  工程优化 285
9.8.1  巨大的消息体 285
9.8.2  读请求处理 285
9.9  本章小结 286
9.9.1  EPaxos与Paxos的异同 286
9.9.2  EPaxos与Raft、ZAB、Multi Paxos的异同 287
9.10  练习题 288
第4篇  番外——FLP定理
第10章  FLP——不可能定理 290
10.1  FLP定理概述 290
10.1.1  FLP简介 290
10.1.2  FLP的环境模型 290
10.1.3  Paxos为什么是正确的 291
10.2  FLP的证明 292
10.2.1  基础定义 292
10.2.2  完全正确 292
10.2.3  引理1 293
10.2.4  引理2 293
10.2.5  引理3 294
10.2.6  证明 296
10.3  FLP的指导意义 296
  
练习题答案 298
参考文献 303
  
  
  
  
猜您喜欢

读书导航