[套装书]分布式系统架构:技术栈详解与快速进阶+大规模分布式存储系统:原理解析与架构实战(2册)

作者
张程 杨传辉
丛书名
架构师书库
出版社
机械工业出版社
ISBN
9782007011110
简要
简介
内容简介书籍计算机书籍 ---------------------------分布式系统架构:技术栈详解与快速进阶--------------------------- 内容简介 本书从全栈角度讲解了分布式系统涉及的各项主要技术,从原理剖析、应用场景和实践案例3个维度展开,是作者多年分布式系统研发和架构经验的总结。 从前端到后端、从高效交互到负载均衡、从网络传输到Web服务器、从高并发到高可用……本书囊括了分布式系统的整个技术体系,内容详实、结构清晰,能帮助读者理解和掌握分布式系统架构设计的难点和调优方案。 全书一共10章,具体内容如下: 第1章介绍了分布式架构的理念、目标、作用,以及架构和设计中的难点; 第2章讲解了分布式架构中前端和后端的交互方式、交互难点、高效交互调优; 第3章讲解了分布式环境下网络传输的过程、难点、性能调优; 第4章讲解了Nginx的负载均衡、页面缓存、限流、高可用、性能调优; 第5章讲解了Varnish的HTTP加速、数据缓存、缓存策略、高可用、性能调优; 第6章讲解了Tomcat的原理、加载机制、安全管理、高可用集群、性能优化; 第7章讲解了分布式环境中高并发的问题,通过多种技术方案,如缓存、消息队列、分布式锁等方式去优化和处理,提高系统整体的吞吐量; 第8章介绍了普通事务与分布式事务的差异性,以及分布式事务的多种处理方式; 第9章讲解了如何通过高效索引优化、高可用的技术方案让MySQL能够提供更高效的数据库服务; 第10章讲解了分布式环境中的高可用,即如何通过容量预估、全链路压测、容灾设计来提高系统整体的可用性和健壮性。 . ---------------------------大规模分布式存储系统:原理解析与架构实战--------------------------- 《大规模分布式存储系统:原理解析与架构实战》是分布式系统领域的经典著作,由阿里巴巴高级技术专家“阿里日照”(OceanBase核心开发人员)撰写,阳振坤、章文嵩、杨卫华、汪源、余锋(褚霸)、赖春波等来自阿里、新浪、网易和百度的资深技术专家联袂推荐。理论方面,不仅讲解了大规模分布式存储系统的核心技术和基本原理,而且对谷歌、亚马逊、微软和阿里巴巴等国际型大互联网公司的大规模分布式存储系统进行了分析;实战方面,首先通过对阿里巴巴的分布式数据库OceanBase的实现细节的深入剖析完整地展示了大规模分布式存储系统的架构与设计过程,然后讲解了大规模分布式存储技术在云计算和大数据领域的实践与应用。 《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。范型篇——介绍谷歌、亚马逊、微软、阿里巴巴等著名互联网公司的大规模分布式存储系统架构,涉及分布式文件系统、分布式键值系统、分布式表格系统以及分布式数据库技术等。实践篇——以阿里巴巴的分布式数据库OceanBase为例,详细介绍分布式数据库内部实现,以及实践过程中的经验。专题篇——介绍分布式系统的主要应用:云存储和大数据,这些是近年来的热门领域,本书介绍了云存储平台、技术与安全,以及大数据的概念、流式计算、实时分析等。
目录



---------------------------分布式系统架构:技术栈详解与快速进阶---------------------------


前 言
第1章 分布式架构介绍 1
1.1 分布式架构发展过程 2
1.2 分布式架构设计理念和目标 6
1.2.1 设计理念 6
1.2.2 设计目标 7
1.3 分布式架构应用场景 10
1.4 分布式架构设计难点 10
1.4.1 网络因素 10
1.4.2 服务可用性 11
1.4.3 数据一致性 12
1.5 分布式架构解决痛点 13
1.6 本章小结 14
第2章 分布式架构前后端交互 15
2.1 前后端交互发展过程 15
2.1.1 传统交互模式 16
2.1.2 前后端分离交互模式 19
2.1.3 整体交互 22
2.2 前后端交互方式 22
2.2.1 工作流程 22
2.2.2 交互常见状态码 29
2.3 前后端交互难点 30
2.4 前后端交互优化 32
2.5 案例讲解 37
2.6 本章小结 40
第3章 分布式架构网络传输 41
3.1 网络传输协议 41
3.2 网络传输调用过程 46
3.2.1 协议概述 46
3.2.2 传输过程 48
3.3 网络传输优化 52
3.4 本章小结 54
第4章 分布式架构Nginx 55
4.1 Nginx工作原理 55
4.2 Nginx源码编译安装 57
4.3 Nginx配置 62
4.4 Nginx代理&负载均衡 64
4.4.1 正向代理 66
4.4.2 反向代理 66
4.4.3 动静分离 68
4.4.4 负载均衡策略 69
4.5 Nginx缓存 74
4.6 Nginx限流 76
4.7 Nginx屏蔽 79
4.8 Nginx优化 79
4.8.1 优化思路 79
4.8.2 核心配置优化 79
4.9 Nginx高可用 82
4.10 本章小结 86
第5章 分布式架构Varnish 87
5.1 Varnish工作原理 87
5.2 Varnish源码编译安装 89
5.3 Varnish配置 92
5.4 Varnish核心指令 98
5.4.1 Varnish核心指令之backend 98
5.4.2 Varnish核心指令之director 98
5.5 Varnish缓存 102
5.5.1 Varnish缓存状态 102
5.5.2 Varnish缓存管理 104
5.6 Varnish处理策略 105
5.6.1 pass 106
5.6.2 pipe 106
5.6.3 lookup 107
5.7 Varnish健康检查 107
5.8 Varnish优化 109
5.8.1 Varnish优化思路 109
5.8.2 Varnish优化讲解 109
5.9 Varnish高可用 111
5.10 本章小结 116
第6章 分布式架构Tomcat 117
6.1 Tomcat原理 117
6.2 Tomcat生命周期 123
6.3 Tomcat源码编译安装 124
6.4 Tomcat结构 126
6.4.1 bin 126
6.4.2 conf 127
6.4.3 lib 128
6.4.4 logs 129
6.4.5 webapps 129
6.5 Tomcat加载过程 130
6.5.1 Bootstrap类初始化 130
6.5.2 Bootstrap启动 132
6.6 Tomcat安全 135
6.6.1 配置调整 135
6.6.2 安全策略 136
6.6.3 SSL传输安全 136
6.7 Tomcat集群 137
6.7.1 集群组件实现 138
6.7.2 集群配置 139
6.8 JVM 142
6.8.1 Class文件结构 143
6.8.2 类的装载、连接和初始化 145
6.8.3 JVM的内存分配 148
6.8.4 JVM执行引擎 151
6.8.5 垃圾回收 152
6.9 Tomcat性能调优 158
6.9.1 性能测试 158
6.9.2 性能优化 162
6.10 本章小结 167
第7章 分布式架构高并发 168
7.1 高并发使用场景 169
7.2 高并发难点 171
7.2.1 高并发期间如何避免产生脏数据 171
7.2.2 当出现脏数据后如何处理 171
7.2.3 高并发期间如何节约带宽 172
7.3 高并发之缓存 174
7.3.1 Redis介绍 174
7.3.2 Redis原理 175
7.3.3 Redis安装编译 176
7.3.4 Redis数据结构 178
7.3.5 Redis持久化 181
7.3.6 Redis事务 183
7.3.7 Redis分布式锁 186
7.3.8 Redis任务队列 189
7.3.9 Redis高并发处理常见问题及解决方案 201
7.3.10 Redis高可用 211
7.3.11 Redis调优 213
7.4 高并发之消息队列 214
7.4.1 RocketMQ介绍 214
7.4.2 RocketMQ安装编译 217
7.4.3 RocketMQ应用场景 221
7.4.4 RocketMQ路由中心 222
7.4.5 RocketMQ消息存储结构 224
7.4.6 RocketMQ刷盘和复制策略 226
7.4.7 RocketMQ消息队列 227
7.4.8 RocketMQ高并发处理常见问题及解决方案 238
7.4.9 RocketMQ集群 240
7.4.10 RocketMQ调优 240
7.5 高并发优化 242
7.5.1 优化思路 242
7.5.2 优化方案 243
7.6 高并发经典案例 245
7.7 本章小结 249
第8章 分布式架构事务 250
8.1 分布式事务介绍 251
8.1.1 本地事务 251
8.1.2 全局事务 253
8.1.3 两阶段提交 254
8.1.4 分布式事务 255
8.1.5 小结 255
8.2 分布式事务概论 256
8.2.1 CAP定理 256
8.2.2 BASE理论 257
8.3 分布式事务应用场景 258
8.4 分布式事务难点 259
8.4.1 网络因素 259
8.4.2 消息重复发送 260
8.4.3 CAP定理选择 262
8.5 分布式事务解决方案 262
8.5.1 最大努力通知 263
8.5.2 TCC事务补偿 273
8.5.3 消息一致性 284
8.6 分布式事务案例讲解 295
8.7 本章小结 297
第9章 分布式架构MySQL 298
9.1 MySQL运行原理 299
9.2 MySQL编译启动 304
9.3 MySQL事务 307
9.3.1 事务特性 307
9.3.2 隔离级别 308
9.3.3 死锁 308
9.3.4 事务日志 309
9.4 MySQL存储引擎 310
9.4.1 概述 310
9.4.2 InnoDB 311
9.4.3 MyISAM 313
9.5 MySQL之SQL操作 314
9.5.1 SQL介绍 314
9.5.2 库 316
9.5.3 表 316
9.6 MySQL索引 317
9.6.1 索引概述 317
9.6.2 数据结构 318
9.6.3 索引分类 319
9.6.4 创建索引 319
9.7 MySQL备份 321
9.7.1 备份概述 321
9.7.2 备份类型 321
9.7.3 备份内容 322
9.8 MySQL难点 323
9.8.1 死锁 323
9.8.2 连接数过多 325
9.8.3 主从复制延迟 325
9.8.4 CPU飙高 326
9.8.5 索引效率 326
9.9 MySQL性能优化 326
9.9.1 优化思路 326
9.9.2 优化过程 327
9.10 MySQL集群 331
9.11 本章小结 333
第10章 分布式架构高可用 334
10.1 高可用概述及难点 334
10.2 高可用涉及内容 336
10.3 高可用具体应用 344
10.4 高可用案例讲解 345
10.5 本章小结 346



---------------------------大规模分布式存储系统:原理解析与架构实战---------------------------


《大规模分布式存储系统:原理解析与架构实战》
前言
第1章 概述 /1
1.1 分布式存储概念 /1
1.2 分布式存储分类 /2
第一篇 基础篇
第2章 单机存储系统 /6
2.1 硬件基础 /6
2.1.1 CPU架构 /6
2.1.2 IO总线 /7
2.1.3 网络拓扑 /9
2.1.4 性能参数 /10
2.1.5 存储层次架构 /11
2.2 单机存储引擎 /12
2.2.1 哈希存储引擎 /12
2.2.2 B树存储引擎 /14
2.2.3 LSM树存储引擎 /15
2.3 数据模型 /17
2.3.1 文件模型 /17
2.3.2 关系模型 /18
2.3.3 键值模型 /19
2.3.4 SQL与NoSQL /20
2.4 事务与并发控制 /21
2.4.1 事务 /21
2.4.2 并发控制 /23
2.5 故障恢复 /26
2.5.1 操作日志 /26
2.5.2 重做日志 /27
2.5.3 优化手段 /27
2.6 数据压缩 /29
2.6.1 压缩算法 /29
2.6.2 列式存储 /33
第3章 分布式系统 /36
3.1 基本概念 /36
3.1.1 异常 /36
3.1.2 一致性 /38
3.1.3 衡量指标 /39
3.2 性能分析 /40
3.3 数据分布 /42
3.3.1 哈希分布 /43
3.3.2 顺序分布 /45
3.3.3 负载均衡 /46
3.4 复制 /47
3.4.1 复制的概述 /47
3.4.2 一致性与可用性 /49
3.5 容错 /50
3.5.1 常见故障 /50
3.5.2 故障检测 /51
3.5.3 故障恢复 /52
3.6 可扩展性 /53
3.6.1 总控节点 /54
3.6.2 数据库扩容 /54
3.6.3 异构系统 /56
3.7 分布式协议 /57
3.7.1 两阶段提交协议 /57
3.7.2 Paxos协议 /59
3.7.3 Paxos与2PC /60
3.8 跨机房部署 /60
第二篇 范型篇
第4章 分布式文件系统 /66
4.1 Google文件系统 /66
4.1.1 系统架构 /66
4.1.2 关键问题 /67
4.1.3 Master设计 /72
4.1.4 ChunkServer设计 /74
4.1.5 讨论 /74
4.2 Taobao File System /75
4.2.1 系统架构 /75
4.2.2 讨论 /78
4.3 Facebook Haystack /78
4.3.1 系统架构 /79
4.3.2 讨论 /82
4.4 内容分发网络 /83
4.4.1 CDN架构 /83
4.4.2 讨论 /85
第5章 分布式键值系统 /86
5.1 Amazon Dynamo /86
5.1.1 数据分布 /86
5.1.2 一致性与复制 /88
5.1.3 容错 /89
5.1.4 负载均衡 /90
5.1.5 读写流程 /91
5.1.6 单机实现 /92
5.1.7 讨论 /93
5.2 淘宝Tair /93
5.2.1 系统架构 /93
5.2.2 关键问题 /94
5.2.3 讨论 /96
第6章 分布式表格系统 /97
6.1 Google Bigtable /97
6.1.1 架构 /98
6.1.2 数据分布 /100
6.1.3 复制与一致性 /101
6.1.4 容错 /101
6.1.5 负载均衡 /102
6.1.6 分裂与合并 /102
6.1.7 单机存储 /103
6.1.8 垃圾回收 /104
6.1.9 讨论 /105
6.2 Google Megastore /105
6.2.1 系统架构 /107
6.2.2 实体组 /108
6.2.3 并发控制 /109
6.2.4 复制 /110
6.2.5 索引 /111
6.2.6 协调者 /111
6.2.7 读取流程 /112
6.2.8 写入流程 /113
6.2.9 讨论 /115
6.3 Windows Azure Storage /115
6.3.1 整体架构 /115
6.3.2 文件流层 /117
6.3.3 分区层 /121
6.3.4 讨论 /125
第7章 分布式数据库 /126
7.1 数据库中间层 /126
7.1.1 架构 /126
7.1.2 扩容 /128
7.1.3 讨论 /128
7.2 Microsoft SQL Azure /129
7.2.1 数据模型 /129
7.2.2 架构 /131
7.2.3 复制与一致性 /132
7.2.4 容错 /132
7.2.5 负载均衡 /133
7.2.6 多租户 /133
7.2.7 讨论 /134
7.3 Google Spanner /134
7.3.1 数据模型 /134
7.3.2 架构 /135
7.3.3 复制与一致性 /136
7.3.4 TrueTime /137
7.3.5 并发控制 /138
7.3.6 数据迁移 /139
7.3.7 讨论 /139
第三篇 实践篇
第8章 OceanBase架构初探 /142
8.1 背景简介 /142
8.2 设计思路 /143
8.3 系统架构 /144
8.3.1 整体架构图 /144
8.3.2 客户端 /145
8.3.3 RootServer /147
8.3.4 MergeServer /148
8.3.5 ChunkServer /149
8.3.6 UpdateServer /149
8.3.7 定期合并&数据分发 /150
8.4 架构剖析 /151
8.4.1 一致性选择 /151
8.4.2 数据结构 /152
8.4.3 可靠性与可用性 /154
8.4.4 读写事务 /154
8.4.5 单点性能 /155
8.4.6 SSD支持 /156
8.4.7 数据正确性 /157
8.4.8 分层结构 /158
第9章 分布式存储引擎 /159
9.1 公共模块 /159
9.1.1 内存管理 /159
9.1.2 基础数据结构 /161
9.1.3 锁 /164
9.1.4 任务队列 /165
9.1.5 网络框架 /166
9.1.6 压缩与解压缩 /167
9.2 RootServer实现机制 /168
9.2.1 数据结构 /168
9.2.2 子表复制与负载均衡 /170
9.2.3 子表分裂与合并 /171
9.2.4 UpdateServer选主 /172
9.2.5 RootServer主备 /173
9.3 UpdateServer实现机制 /174
9.3.1 存储引擎 /174
9.3.2 任务模型 /179
9.3.3 主备同步 /181
9.4 ChunkServer实现机制 /183
9.4.1 子表管理 /183
9.4.2 SSTable /184
9.4.3 缓存实现 /188
9.4.4 IO实现 /190
9.4.5 定期合并&数据分发 /191
9.4.6 定期合并限速 /192
9.5 消除更新瓶颈 /193
9.5.1 读写优化回顾 /193
9.5.2 数据旁路导入 /195
9.5.3 数据分区 /195
第10章 数据库功能 /197
10.1 整体结构 /197
10.2 只读事务 /199
10.2.1 物理操作符接口 /201
10.2.2 单表操作 /202
10.2.3 多表操作 /203
10.2.4 SQL执行本地化 /205
10.3 写事务 /206
10.3.1 写事务执行流程 /206
10.3.2 多版本并发控制 /208
10.4 OLAP业务支持 /212
10.4.1 并发查询 /212
10.4.2 列式存储 /214
10.5 特色功能 /215
10.5.1 大表左连接 /215
10.5.2 数据过期与批量删除 /216
第11章 质量保证、运维及实践 /218
11.1 质量保证 /218
11.1.1 RD开发 /219
11.1.2 QA测试 /222
11.1.3 试运行 /224
11.2 使用与运维 /225
11.2.1 使用 /225
11.2.2 运维 /227
11.3 应用 /228
11.3.1 收藏夹 /229
11.3.2 天猫评价 /230
11.3.3 直通车报表 /231
11.4 最佳实践 /232
11.4.1 系统发展路径 /232
11.4.2 人员成长 /234
11.4.3 系统设计 /236
11.4.4 系统实现 /237
11.4.5 使用与运维 /238
11.4.6 工程现象 /239
11.4.7 经验法则 /240
第四篇 专题篇
第12章 云存储 /242
12.1 云存储的概念 /242
12.2 云存储的产品形态 /245
12.3 云存储技术 /247
12.4 云存储的核心优势 /249
12.5 云平台整体架构 /251
12.5.1 Amazon云平台 /252
12.5.2 Google云平台 /253
12.5.3 Microsoft云平台 /255
12.5.4 云平台架构 /258
12.6 云存储技术体系 /261
12.7 云存储安全 /263
第13章 大数据 /267
13.1 大数据的概念 /267
13.2 MapReduce /269
13.3 MapReduce扩展 /270
13.3.1 Google Tenzing /271
13.3.2 Microsoft Dryad /274
13.3.3 Google Pregel /275
13.4 流式计算 /276
13.4.1 原理 /276
13.4.2 Yahoo S4 /278
13.4.3 Twitter Storm /279
13.5 实时分析 /281
13.5.1 MPP架构 /281
13.5.2 EMC Greenplum /282
13.5.3 HP Vertica /285
13.5.4 Google Dremel /286
参考资料 /288



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4