书籍详情

分布式系统原理与工程实践

分布式系统原理与工程实践

作者:易哥 著

出版社:电子工业出版社

出版时间:2021-12-01

ISBN:9787121423611

定价:¥90.00

购买这本书可以去
内容简介
  本书通过理论篇、实践篇、工程篇、总结篇四篇(13章),介绍了分布式系统的知识体系。理论篇介绍了一致性、共识、分布式约束等知识;实践篇介绍了分布式锁、分布式事务、服务发现与调用、服务保护与网关、幂等接口等知识;工程篇介绍了消息系统中间件 RabbitMQ 和分布式协调中间件ZooKeeper等知识;总结篇则帮助大家厘清分布式系统的知识脉络。本书适合想要学习分布式系统理论、实践、工程知识的学生、软件开发者。
作者简介
  崔现斌(笔名易哥),毕业于浙江大学、山东大学,高级软件系统架构师、网络工程师、数据库工程师、软件测试工程师、注册电气工程师。在校成绩优异,曾获得国家奖学金两次,一等奖学金四次,科技创新大赛一等奖三次,以及五四青年科学奖等。主要科研方向为机器学习、分布式算法、容错算法在无线传感网络中的应用,相关论文获得IEEE通信协会最佳论文奖。具有十余年软件开发经验,曾担任网站技术部门负责人,现从事互联网金融行业。主要负责软件系统架构设计与后端开发,专注分布式架构、研发协同、持续交付等领域,设计并实现应用交付流水系统、任务协作与管理系统、通用流处理平台等众多系统或平台。同时也是一名活跃的开源开发者。著有书籍《通用源码阅读指导书》《高性能架构之道》,两本书籍均受到多方好评,并在台湾地区发行繁体版。
目录
目录
理论篇
第1章 分布式概述\t2
1.1 概述\t2
1.2 应用的演进历程\t3
1.2.1 单体应用\t3
1.2.2 集群应用\t4
1.2.3 狭义分布式应用\t9
1.2.4 微服务应用\t11
1.3 分布式系统概述\t12
1.3.1 分布式系统的定义\t12
1.3.2 分布式一致性问题\t14
1.3.3 分布式应用中的节点\t15
1.4 分布式应用的优势\t16
1.5 分布式应用的问题\t17
1.6 本章小结\t20
第2章 一致性\t21
2.1 一致性的概念\t21
2.1.1 ACID一致性\t22
2.1.2 CAP一致性\t23
2.1.3 两种一致性的关系\t23
2.2 一致性的强弱\t24
2.2.1 严格一致性\t25
2.2.2 顺序一致性\t25
2.2.3 线性一致性\t27
2.2.4 最终一致性\t30
2.2.5 总结\t31
2.3 一致性算法\t32
2.4 两阶段提交\t33
2.4.1 具体实现\t33
2.4.2 线性一致性证明\t35
2.4.3 优劣\t39
2.5 三阶段提交\t39
2.5.1 具体实现\t40
2.5.2 优劣\t42
2.6 本章小结\t44
第3章 共识\t46
3.1 共识与一致性\t46
3.1.1 共识的概念\t47
3.1.2 再论“一致性”\t49
3.2 拜占庭将军问题\t51
3.3 算法的容错性\t54
3.3.1 非拜占庭容错算法\t55
3.3.2 拜占庭容错算法\t55
3.4 共识算法\t56
3.5 Paxos算法\t56
3.5.1 提出与证明\t57
3.5.2 算法的内容\t60
3.5.3 算法实现分析\t62
3.5.4 理解与示例\t64
3.6 Raft算法\t65
3.6.1 Raft算法的内容\t66
3.6.2 Raft算法的保证\t70
3.6.3 总结分析\t73
3.7 本章小结\t74
第4章 分布式约束\t76
4.1 CAP定理\t76
4.1.1 定理的内容\t76
4.1.2 示例与理解\t77
4.2 从CAP定理到BASE定理\t78
4.3 BASE定理\t80
4.3.1 BASE定理的含义\t80
4.3.2 BASE定理的应用\t81
4.4 本章小结\t83
实践篇
第5章 分布式锁\t86
5.1 产生背景\t86
5.2 特性\t88
5.2.1 全局性\t88
5.2.2 唯一性\t89
5.2.3 遵从性\t90
5.3 设计要点\t90
5.4 实现\t91
5.4.1 逻辑分布式锁\t91
5.4.2 唯一性索引分布式锁\t92
5.4.3 唯一性校验分布式锁\t93
5.4.4 一致性分布式锁\t94
5.5 应用场景\t96
5.6 本章小结\t96
第6章 分布式事务\t97
6.1 本地事务与分布式事务\t98
6.2 分布式事务的类别\t99
6.2.1 应用内多数据库事务\t99
6.2.2 单体应用间事务\t99
6.2.3 分布式系统内事务\t100
6.2.4 分布式系统间事务\t101
6.3 分布式事务的类别总结\t101
6.4 应用内多数据库事务方案\t102
6.5 单体应用间事务方案\t104
6.5.1 化为本地事务\t104
6.5.2 化为应用内多数据库事务\t105
6.5.3 TCC\t106
6.5.4 本地异步消息机制\t111
6.5.5 异步消息中心机制\t113
6.6 近似事务\t114
6.7 本章小结\t116
第7章 服务发现与调用\t117
7.1 分布式带来的问题\t117
7.2 服务发现\t119
7.2.1 服务发现模型中的角色\t119
7.2.2 反向代理模型\t120
7.2.3 注册中心模型\t120
7.2.4 服务网格模型\t122
7.2.5 三种模型的比较\t123
7.3 服务调用\t123
7.3.1 背景介绍\t123
7.3.2 基于接口的调用\t125
7.3.3 远程过程调用\t126
7.4 本章小结\t130
第8章 服务保护与网关\t131
8.1 服务保护\t131
8.1.1 理论依据\t132
8.1.2 隔离\t133
8.1.3 限流\t135
8.1.4 降级\t139
8.1.5 熔断\t142
8.1.6 恢复\t144
8.2 服务网关\t145
8.2.1 产生背景\t145
8.2.2 功能\t146
8.2.3 结构\t147
8.3 本章小结\t147
第9章 幂等接口\t148
9.1 概述\t148
9.1.1 幂等接口概述\t148
9.1.2 章节结构\t150
9.2 代数系统\t151
9.2.1 代数系统的定义\t151
9.2.2 特殊元素\t151
9.2.3 幂等\t154
9.3 函数\t155
9.3.1 函数的定义\t155
9.3.2 复合函数\t157
9.4 复合函数的幂等化\t157
9.4.1 函数的幺元化\t157
9.4.2 函数的零元化\t158
9.4.3 运算的幂等化\t160
9.4.4 复合函数幂等化总结\t161
9.5 接口的幺元化\t161
9.6 接口的零元化\t162
9.7 调用的幂等化\t163
9.7.1 判断插入数据\t163
9.7.2 判断删除数据\t164
9.7.3 判断数据版本\t164
9.7.4 拦截重试调用\t166
9.8 幂等接口总结\t167
9.9 本章小结\t168
工程篇
第10章 分布式中间件概述\t171
第11章 RabbitMQ详解\t174
11.1 消息系统概述\t174
11.1.1 消息系统模型\t174
11.1.2 消息系统的应用\t175
11.2 RabbitMQ概述\t177
11.3 RabbitMQ的组件\t177
11.3.1 Exchange\t177
11.3.2 Queue\t178
11.3.3 Message\t178
11.4 RabbitMQ的连接\t179
11.4.1 生产者与Exchange\t179
11.4.2 Exchange与Queue\t180
11.4.3 Queue与消费者\t181
11.5 附加功能\t182
11.5.1 投递确认功能\t182
11.5.2 持久化功能\t183
11.5.3 消费确认功能\t183
11.5.4 逐条派发功能\t184
11.5.5 RPC功能\t184
11.6 模型与应用\t185
11.6.1 点对点模型\t185
11.6.2 发布订阅模型\t186
11.7 本章小结\t187
第12章 ZooKeeper详解\t188
12.1 单机配置与启动\t188
12.1.1 运行配置\t189
12.1.2 启动\t190
12.2 数据模型\t191
12.2.1 时间语义\t191
12.2.2 树状模型\t192
12.2.3 znode的数据与状态\t192
12.2.4 znode的可选特性\t194
12.2.5 znode的限额\t196
12.2.6 znode权限设置\t197
12.3 交互式命令行客户端\t201
12.3.1 设置命令\t202
12.3.2 znode操作命令\t203
12.3.3 使用示例\t205
12.4 监听器\t206
12.4.1 特性\t206
12.4.2 事件通知\t209
12.4.3 交互式命令行客户端中的监听器\t210
12.4.4 其他客户端中的监听器\t210
12.5 连接与会话\t211
12.5.1 连接建立\t211
12.5.2 服务器切换\t214
12.5.3 会话状态\t215
12.5.4 连接监听器\t216
12.6 集群模式\t217
12.6.1 集群配置与启动\t217
12.6.2 一致性实现\t218
12.6.3 一致性级别讨论\t221
12.7 应用示例\t226
12.8 应用场景\t230
12.8.1 节点命名\t231
12.8.2 服务发现\t232
12.8.3 应用配置\t233
12.8.4 分布式锁\t233
12.9 本章小结\t235
总结篇
第13章 再论分布式系统\t238
13.1 分布式与一致性\t238
13.2 本书脉络\t240
13.2.1 理论篇\t240
13.2.2 实践篇\t242
13.2.3 工程篇\t243
13.3 总结与展望\t244
13.3.1 总结\t244
13.3.2 展望\t245
参考文献\t247
猜您喜欢

读书导航