登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2025年01月出版新書

2024年12月出版新書

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

『簡體書』深入理解分布式共识算法

書城自編碼: 3850532
分類: 簡體書→大陸圖書→計算機/網絡软件工程/开发项目管理
作者: 释慧利
國際書號(ISBN): 9787302630036
出版社: 清华大学出版社
出版日期: 2023-03-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 458

我要買

share:

** 我創建的書架 **
未登入.



編輯推薦:
1.Apache的多位专家、多个开源项目的创始人和负责人大力推荐;
2.全面、系统介绍各类共识算法,提供完整的学习路线图,遵循由浅入深的原则,多维度详解共识算法的基本原理并进行实践;
3.涵盖当前流行的大部分共识算法和分布式事务的实现方法,包含Paxos、ZAB、Raft、Fast Paxos、EPaxos和各类Paxos的变种算法;
4.对每种算法都按照“背景知识→运行过程→算法模拟→证明脉络”的过程进行讲解,思路清晰,易于理解;
5.对各种算法做总结与对比,并分析它们的优缺点,而且结合当前流行的一些经典类库和中间件的源码,逐步印证算法的实现过程;
6.精心提供20多道练习题,帮助读者进一步加深对相关算法的理解;
7.精心绘制120余幅示意图,帮助读者更直观地理解各种算法的运行过程;
8.对重点和难点内容有针对性地录制了教学视频,帮助读者高效、直观地学习。
內容簡介:
《深入理解分布式共识算法》结合理论知识、算法模拟和源码解析,从多个维度详细剖析分布式共识算法的基本原理和应用实践,涵盖分布式共识算法的方方面面。同时《深入理解分布式共识算法》对共识算法开发中的重点和难点问题进行了重点讲解,并提供精心准备的练习题供读者巩固和提高所学的知识。另外,作者针对重点内容录制了教学视频,以帮助读者高效、直观地学习。
《深入理解分布式共识算法》共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
內容試閱
随着分布式技术的兴起,分布式共识算法逐渐被很多程序员所熟知。分布式共识算法不仅应用于区块链领域,还应用于后端开发中,常见的中间件开发也能看到它的身影。作为中间件使用人员,学习分布式共识算法可以进行中间件调优并快速定位问题。例如,当ZooKeeper的读性能不足时,可以适当地增加Observer成员;当ZooKeeper处理不了写请求时,可以先排除ZooKeeper是否正在进行Leader选举。因此,无论是中间件使用人员和开发人员,还是区块链开发人员,都有必要学习分布式共识算法。
  分布式共识算法的学习资料比较稀缺,大部分论文是由国外学者发表的,读者能找到的资料少之又少,这给学习相关知识带来了较大的困难。国内图书市场上虽然有几本介绍分布式算法的书籍,但是这些书基本上都只针对某个算法进行介绍。而在实际开发中,开发人员往往需要了解更多的分布式共识算法,知道它们的优缺点,只有这样才能设计出更加适合自己业务场景的系统架构。
  为了帮助开发人员全面、系统地学习和掌握分布式共识算法,笔者耗费两年多的时间编写本书,从理论知识到算法模拟,再到源码解析,多维度深入剖析分布式共识算法的基本原理和实际应用。
  本书源自笔者学习分布式共识算法时整理的学习笔记,意图为相关学习人员尤其是初学者给出一个学习分布式共识算法的路线图。本书介绍大部分常见的分布式共识算法,并对各种算法进行总结与对比,分析它们的优缺点,结合当前流行的一些经典类库和中间件的源码,逐步印证算法的实现过程。希望本书能为国内分布式开发和应用添砖加瓦,能为读者学习分布式共识算法提供一些帮助。
本书特色
  1.内容全面
  本书涵盖当前流行的绝大多数分布式共识算法,如Paxos、ZAB、Raft,以及Fast Paxos和EPaxos等变种算法,为读者提供一个完整和系统的学习路线图。另外,本书在介绍完每种算法后会将其和其他算法进行对比,并给出有针对性的习题供读者巩固和提高。
  2.讲解详细
  本书结合理论知识、算法模拟和源码解析,从多个维度详细剖析分布式共识算法的基本原理和应用实践,并绘制大量的原理图直观地展示每种算法运行和交互的过程,还对容易混淆的问题进行重点说明,帮助读者答疑解惑。
  3.由浅入深
  本书遵循由浅入深的原则,按照“背景知识→运行过程→算法模拟→证明脉络”的过程介绍相关算法,即便是刚接触分布式共识算法的初学者,也可以通过阅读本书对相关算法有一个完整和系统的认识。
  4.源码详解
  本书介绍每种算法时都会提供经典类库源码解析,从而加深读者对分布式共识算法的理解。读者对照源码进行学习,更加贴近实际开发,学习效果更好。
  5.视频讲解
  笔者对书中的重点和难点内容有针对性地录制了教学视频,以帮助读者更加高效、直观地进行学习。但需要注意的是,视频只是辅助手段,主要起引导作用,读者还是要把主要精力放在对图书内容的系统阅读上。
本书内容
  第1篇 分布式相关概念与定理
  本篇涵盖第1、2章,详细介绍分布式领域的各种定理,包括CAP和BASE定理等。本篇内容是分布式技术学习的指路明灯,可以帮助读者更好地理解算法的设计理念。
  第2篇 常见分布式共识算法原理与实战
  本篇涵盖第3~6章,首先从二阶段提交(2PC)协议和三阶段提交(3PC)协议开始讲起,然后引入Paxos、ZAB和Raft算法,最后对分布式事务(Seata)、状态机(PhxPaxos)和注册中心(ZooKeeper)进行详细介绍。本篇内容对相关人员的开发实践会有很大的帮助。
  第3篇 Paxos变种算法集合
  本篇涵盖第7~9章,对共识算法进行拓展,涵盖Paxos变种算法的主要发展历程,并着重对Fast Paxos和EPaxos算法进行详细介绍。Paxos变种算法的设计思路可以有效帮助开发人员针对自己的分布式场景进行优化。
  第4篇 番外——FLP定理
  本篇涵盖第10章,简要介绍FLP定理的相关内容。FLP定理是异步网络中的一座很难翻越的大山,它警示开发人员,在异步网络中不要试图设计出一个完全正确的共识算法。
读者对象
* 想全面学习分布式共识算法的人员;
* 基于分布式场景进行开发的人员;
* 中间件开发人员;
* 系统运维工程师;
* 相关培训学员;
* 高校相关专业的学生。
配套资料获取
  本书涉及的源码和配套教学视频需要读者自行下载。读者可以在清华大学出版社的网站(www.tup.com.cn)上搜索到本书页面,并在该页面找到“资源下载”栏目,然后单击“网络资源”按钮进行下载,也可以通过“售后支持”给出的微信公众号进行下载。
售后支持
  很惭愧,笔者的学问不深,能提供给读者的也只有一些学习笔记和心得体会。笔者的文笔可能不够优美,甚至书中可能还存在谬误,希望各位读者海涵,如果把阅读的注意放在笔者的语言疏漏上,就等同于“责明于垢鉴矣”。
  读者在阅读本书时如果发现错漏,或者有其他疑问,可以在笔者的微信公众号“并发笔记”的后台发私信或者留言,笔者将不定期进行确认和答复这些问题,并给出勘误表。笔者也希望能通过微信公众号这个小天地和读者朋友们一起学习与探讨分布式开发的相关话题。另外,本书还提供售后服务邮箱(bookservice2008@163.com),读者也可以通过该邮箱反馈书中存在的问题或者提出自己在学习时存在的疑问。

“并发笔记”微信公众号入口
致谢
  感谢所有在互联网上贡献研究成果的学者们!
  感谢所有参与本书审读和查漏补缺的前辈们!
  感谢为本书纠错和提供帮助的各位网友们!
  感谢为本书出版付出努力的马翠翠老师和欧振旭编辑!
  感谢清华大学出版社参与本书出版的所有人员,没有你们的精益求精,就没有本书的高质量出版!
  最后祝读者学习快乐!
  释慧利
深入理解分布式共识算法

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2025 (香港)大書城有限公司 All Rights Reserved.