架构解密:从分布式到微服务+从零开始学架构+架构之美+软件架构设计+架构修炼之道百度网盘pdf下载
免费下载
书籍下载
内容介绍
9787121347917 9787121338076 9787121356032 9787121360374 9787121388354
基本信息
商品名:架构解密:从分布式到微服务(第2版)
ISBN:9787121388354
定价:89
出版社:电子工业出版社
作者:吴治辉
出版时间:2020-06-01
印刷时间:2020-06-01
包装:平装
用纸:胶版纸
编辑推荐
《Kubernetes□□指南》作者、Mycat发起人吴治辉新作。
对分布式、微服务、云原生、K8s、Service Mesh等发展脉络和原理进行深度解密。
不论你是有十几年研发经验及架构经验的IT老手,还是刚入门系统架构的IT新手,本书都能对你理解分布式架构和微服务架构大有助益。
□□章讲解分布式的基础——网络,对国际互联网、NIO、AIO、网络传输中的对象序列化问题、HTTP的前世今生、TCP/IP、从CDN到SD-WAN等知识进行深入讲解。
第2章讲解分布式系统的经典理论,涉及分布式系统的设计理念、一致性原理;ZooKeeper的使用场景;CAP理论的前世今生;BASE准则;分布式事务的原理。
第3章从RPC开始,讲解分布式服务治理框架的起源与原理,并讲解ZeroC Ice的原理和微服务架构实战。
第4~6章以专题形式讲解内存、分布式文件存储和分布式计算,对每个专题都讲解相关的重要理论、产品、开源项目及经验等。
第7章深入讲解全文检索与消息队列中间件的原理及用法。
第8章讲解以Kubernetes为代表的微服务架构解决了传统架构的哪些痛点;Service Mesh解决了微服务架构的哪些问题,以及如何理解它的原理和核心内容。
第9章分享作者的架构实践经验:公益项目wuhansun实践、身边购平台实践、DIY一个有难度的分布式集□。
《Kubernetes□□指南》作者龚正、《Offer来了》作者王磊、《可伸缩服务架构》《分布式服务架构》作者杨彪力赞!
内容简介
微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术,还要深入理解其发展脉络、原理等,才能游刃有余地将其用于现有的项目开发或老系统改造中。
本书总计9章。□□章讲解分布式的基础——网络,对国际互联网、NIO、AIO、网络传输中的对象序列化问题、HTTP的前世今生、TCP/IP、从CDN到SD-WAN等知识进行深入讲解。第2章讲解分布式系统的经典理论,涉及分布式系统的设计理念、一致性原理;ZooKeeper的使用场景;CAP理论的前世今生;BASE准则;分布式事务的原理。第3章从RPC开始,讲解分布式服务治理框架的起源与原理,并讲解ZeroC Ice的原理和微服务架构实战。第4~6章以专题形式讲解内存、分布式文件存储和分布式计算,对每个专题都讲解相关的重要理论、产品、开源项目及经验等。第7章深入讲解全文检索与消息队列中间件的原理及用法。第8章讲解以Kubernetes为代表的微服务架构解决了传统架构的哪些痛点;Service Mesh解决了微服务架构的哪些问题,以及如何理解它的原理和核心内容。第9章分享作者的架构实践经验。
不论你是有十几年研发经验及架构经验的IT老手,还是刚入门系统架构的IT新手,本书都能对你理解分布式架构和微服务架构大有助益。
目录
□□章 深入理解网络 1
1.1 从国际互联网开始 1
1.2 NIO,一本难念的经 7
1.2.1 难懂的ByteBuffer 7
1.2.2 晦涩的“非阻塞” 15
1.2.3 复杂的Reactor模型 18
1.3 AIO,大道至简的设计与苦涩的现实 21
1.4 网络传输中的对象序列化问题 26
1.5 HTTP的前世今生 30
1.5.1 HTTP的设计思路 31
1.5.2 HTTP如何保持状态 32
1.5.3 Session的秘密 34
1.5.4 再谈Token 36
1.5.5 分布式Session 39
1.5.6 HTTP与Service Mesh 40
1.6 分布式系统的基石:TCP/IP 42
1.7 从CDN到SD-WAN 45
1.7.1 互联互不通的运营商网络 45
1.7.2 双线机房的出现 45
1.7.3 CDN的作用 46
1.7.4 SD-WAN技术的诞生 47
第2章 分布式系统的经典理论 48
2.1 从分布式系统的设计理念说起 48
2.2 分布式系统的一致性原理 50
2.3 分布式系统的基石之ZooKeeper 53
2.3.1 ZooKeeper的原理与功能 53
2.3.2 ZooKeeper的应用场景案例分析 57
2.4 经典的CAP理论 61
2.5 BASE准则,一个影响深远的指导思想 63
2.6 重新认识分布式事务 64
2.6.1 数据库单机事务的实现原理 64
2.6.2 经典的X/OpenDTP事务模型 66
2.6.3 互联网中的分布式事务解决方案 68
第3章 聊聊RPC 73
3.1 从IPC通信说起 73
3.2 古老又有生命力的RPC 75
3.3 从RPC到服务治理框架 81
3.4 基于ZeroC Ice的微服务架构指南 84
3.4.1 ZeroC Ice的前世今生 84
3.4.2 ZeroC Ice微服务架构指南 86
3.4.3 微服务架构概述 93
第4章 深入浅析内存 99
4.1 你所不知道的内存知识 99
4.1.1 复杂的CPU与单纯的内存 99
4.1.2 多核CPU与内存共享问题 101
4.1.3 著名的Cache伪共享问题 105
4.1.4 深入理解不一致性内存 107
4.2 内存计算技术的前世今生 110
4.3 内存缓存技术分析 115
4.3.1 缓存概述 115
4.3.2 缓存实现的几种方式 117
4.3.3 Memcache的内存管理技术 119
4.3.4 Redis的独特之处 121
4.4 内存计算产品分析 122
4.4.1 SAP HANA 123
4.4.2 Hazelcast 125
4.4.3 VoltDB 127
第5章 深入解析分布式文件存储 130
5.1 数据存储进化史 130
5.2 经典的网络文件系统NFS 137
5.3 高性能计算领域的分布式文件系统 140
5.4 企业级分布式文件系统GlusterFS 142
5.5 创新的Linux分布式存储系统——Ceph 145
5.6 星际文件系统IPFS 151
5.7 软件定义存储 155
第6章 聊聊分布式计算 161
6.1 不得不说的Actor模型 161
6.2 Actor原理与实践 165
6.3 初识Akka 172
6.4 适用面很广的Storm 179
6.5 MapReduce及其引发的新世界 187
第7章 全文检索与消息队列中间件 194
7.1 全文检索 194
7.1.1 Lucene 195
7.1.2 Solr 199
7.1.3 ElasticSearch 202
7.2 消息队列 210
7.2.1 JEE专属的JMS 214
7.2.2 生生不息的ActiveMQ 219
7.2.3 RabbitMQ 223
7.2.4 Kafka 230
第8章 微服务架构 236
8.1 微服务架构概述 236
8.1.1 微服务架构兴起的原因 237
8.1.2 不得不提的容器技术 238
8.1.3 如何全面理解微服务架构 241
8.2 几种常见的微服务架构方案 245
8.2.1 ZeroC IceGrid微服务架构 245
8.2.2 Spring Cloud微服务架构 248
8.2.3 基于消息队列的微服务架构 250
8.2.4 Docker Swarm微服务架构 251
8.3 深入Kubernetes微服务平台 253
8.3.1 Kubernetes的概念与功能 253
8.3.2 Kubernetes的组成与原理 258
8.3.3 基于Kubernetes的PaaS平台 262
8.4 从微服务到Service Mesh 280
8.4.1 Service Mesh之再见架构 280
8.4.2 Envoy核心实践入门 282
8.4.3 Istio背后的技术 286
8.4.4 Istio的架构演变 293
第9章 架构实践 297
9.1 公益项目wuhansun实践 297
9.2 身边购平台实践 306
9.3 DIY一个有难度的分布式集群 312
作者简介
吴治辉
HPE资深架构师,拥有近20年软件研发经验,专注于电信软件和云计算方面的软件研发,拥有丰富的大型项目架构设计经验,是业界少有的具备很强Coding能力的资深架构师,也是《ZeroC Ice□□指南》《Kubernetes□□指南》《区块链轻松上手》等书作者。
精彩书评
以Kubernetes为核心的容器技术正在被大多数企业接受,业务系统开发也在逐渐向微服务化架构演进,如何对大规模企业级应用系统进行科学、先进的架构设计,成为系统架构师的主要挑战。
本书集理论与实践于一身,对网络通信、RPC、内存、文件系统、计算、消息队列等核心分布式架构组件进行详细介绍,对分布式架构理论和先进的微服务架构进行阐述,同时将作者多年的大型企业级IT系统架构经验与真实应用案例相结合,对架构设计进行深度解密。本书深入浅出、图文并茂,是系统架构师不可多得的专业参考书。
——龚正 《Kubernetes□□指南》作者、HPE高级顾问
分布式架构和微服务架构是互联网架构的核心。我们通常理解分布式架构都是从常用的分布式软件开始的,比如Spring Cloud、Kafka、ZooKeeper、HBase等,这些都离不开分布式网络架构、分布式存储和分布式计算等基础理论。本书从更高的视角看待分布式架构,为我们详细阐述了分布式架构的底层原理和设计思路,以及操作系统的底层原理,具体知识点包括分布式网络架构、一致性理论、RPC、内存、分布式文件、消息中间件和微服务架构等,是互联网开发与设计方面的优秀参考书。
——王磊 《Offer来了》作者
本书凝聚了吴治辉老师的多年架构经验,内容覆盖网络、分布式、微服务、存储、计算等。它深入浅出地讲解了云原生、Kubernetes和Service Mesh等热门技术,并详细剖析其原理,值得每个IT人士阅读。
——杨彪 《可伸缩服务架构》《分布式服务架构》作者、美团高级架构师
基本信息
书名:从零开始学架构:照着做,你也能成为架构师
作者:李运华 (作者)
书 号:9787121347917
出版日期:2018-09-21
页 数:324
开 本:16(185*235)
定价 99元
目录.
1部分 概念和基础
1章 架构基础
1.1 “架构”到底指什么
1.1.1 系统与子系统
1.1.2 模块与组件
1.1.3 框架与架构
1.1.4 重新定义架构
1.2 架构设计的目的
1.2.1 架构设计的误区
1.2.2 以史为鉴
1.2.3 架构设计的真正目的
1.3 复杂度来源
1.3.1 高性能
1.3.2 高可用
1.3.3 可扩展性
1.3.4 低成本
1.3.5 安全
1.3.6 规模
1.4 本章小结
2章 架构设计原则
2.1 合适原则
2.2 简单原则
2.3 演化原则
2.4 本章小结
3章 架构设计流程
3.1 有的放矢—识别复杂度
3.2 按图索骥—设计备选方案
3.3 深思熟虑—评估和选择备选方案
3.3.1 业务背景
3.3.2 备选方案设计
3.3.3 备选方案360度环评
3.4 精雕细琢—详细方案设计
3.5 本章小结
2部分 高性能架构模式
4章 存储高性能
4.1 关系数据库
4.1.1 读写分离
4.1.2 分库分表
4.1.3 实现方法
4.2 NoSQL
4.2.1 K-V存储
4.2.2 文档数据库
4.2.3 列式数据库
4.2.4 全文搜索引擎
4.3 缓存
4.3.1 缓存穿透
4.3.2 缓存雪崩
4.3.3 缓存热点
4.4 本章小结
5章 计算高性能
5.1 单服务器高性能
5.1.1 PPC
5.1.2 prefork
5.1.3 TPC
5.1.4 prethread
5.1.5 Reactor
5.1.6 Proactor
5.2 集群高性能
5.2.1 负载均衡分类
5.2.2 负载均衡架构
5.2.3 负载均衡的算法
5.3 本章小结
3部分 高可用架构模式
6章 CAP
6.1 CAP理论
6.1.1 一致性(Consistency)
6.1.2 可用性
6.1.3 分区容忍性(Partition Tolerance)
6.2 CAP应用
6.2.1 CP—Consistency/Partition Tolerance
6.2.2 AP—Availability/Partition Tolerance
6.3 CAP细节
6.4 ACID、BASE
6.4.1 ACID
6.4.2 BASE
6.5 本章小结
7章 FMEA
7.1 FMEA介绍
7.2 FMEA方法
7.3 FMEA实战
7.4 本章小结
8章 存储高可用
8.1 主备复制
8.1.1 基本实现
8.1.2 优缺点分析
8.2 主从复制
8.2.1 基本实现
8.2.2 优缺点分析
8.3 主备倒换与主从倒换
8.3.1 设计关键
8.3.2 常见架构
8.4 主主复制
8.5 数据集群
8.5.1 数据集中集群
8.5.2 数据分散集群
8.5.3 分布式事务算法
8.5.4 分布式一致性算法
8.6 数据分区
8.6.1 数据量
8.6.2 分区规则
8.6.3 复制规则
8.7 本章小结
9章 计算高可用
9.1 主备
9.2 主从
9.3 对称集群
9.4 非对称集群
9.5 本章小结
10章 业务高可用
10.1 异地多活
10.1.1 异地多活架构
10.1.2 异地多活设计技巧
10.1.3 异地多活设计步骤
10.2 接口级的故障应对方案
10.2.1 降级
10.2.2 熔断
10.2.3 限流
10.2.4 排队
10.3 本章小结
4部分 可扩展架构模式
11章 可扩展模式
11.1 可扩展概述
11.2 可扩展的基本思想
11.3 可扩展方式
11.4 本章小结
12章 分层架构
12.1 分层架构类型
12.2 分层架构详解
12.3 本章小结
13章 SOA架构
13.1 SOA历史
13.2 SOA详解
13.3 本章小结
14章 微服务
14.1 微服务历史
14.2 微服务与SOA的关系
14.3 微服务的陷阱
14.4 微服务佳实践
14.4.1 服务粒度
14.4.2 拆分方法
14.4.3 基础设施
14.5 本章小结
15章 微内核架构
15.1 基本概念
15.2 设计关键点
15.3 OSGi架构简析
15.4 规则引擎架构简析
15.5 本章小结
5部分 架构实战
16章 消息队列设计实战
16.1 需求
16.2 设计流程
16.2.1 识别复杂度
16.2.2 设计备选方案
16.2.3 评估和选择备选方案
16.2.4 细化方案
16.3 本章小结
17章 互联网架构演进
17.1 技术演进
17.1.1 技术演进的动力
17.1.2 淘宝
17.1.3 手机QQ
17.1.4 微信
17.2 技术演进的模式
17.3 互联网业务发展
17.3.1 业务复杂性
17.3.2 用户规模
17.3.3 量变到质变
17.4 本章小结
18章 互联网架构模板
18.1 总体结构
18.2 存储层技术
18.2.1 SQL
18.2.2 NoSQL
18.2.3 小文件存储
18.2.4 大文件存储
18.3 开发层技术
18.3.1 开发框架
18.3.2 Web服务器
18.3.3 容器
18.4 服务层技术
18.4.1 配置中心
18.4.2 服务中心
18.4.3 消息队列
18.5 网络层技术
18.5.1 负载均衡
18.5.2 CDN
18.5.3 多机房
18.5.4 多中心
18.6 用户层技术
18.6.1 用户管理
18.6.2 消息推送
18.6.3 存储云与图片云
18.7 业务层技术
18.8 平台技术
18.8.1 运维平台
18.8.2 测试平台
18.8.3 数据平台
18.8.4 管理平台
18.9 本章小结
19章 架构重构
19.1 有的放矢
19.2 合纵连横
19.2.1 合纵
19.2.2 连横
19.3 运筹帷幄
19.4 文武双全—项目管理+技术能力
19.5 本章小结
20章 开源系统
20.1 选:如何选择一个开源项目
20.1.1 聚焦是否满足业务
20.1.2 聚焦是否成熟
20.1.3 聚焦运维能力
20.2 用:如何使用开源方案
20.2.1 深入研究,仔细测试
20.2.2 小心应用,灰度发布
20.2.3 做好应急,以防万一
20.3 改:如何基于开源项目做二次开发
20.3.1 保持纯洁,加以包装
20.3.2 发明你要的轮子
20.4 本章小结
内容简介
本书的内容主要包含以下几部分:1) 架构设计基础,包括架构设计相关概念、历史、原则、基本方法,让架构设计不再神秘;2) 架构设计流程,通过一个虚拟的案例,描述了一个通用的架构设计流程,让架构设计不再依赖天才的创作,而是有章可循;3) 架构设计专题:包括高性能架构设计、高可用架构设计、可扩展架构设计,这些模式可以直接参考和应用;4) 架构设计实战,包括重构、开源方案引入、架构发展路径、互联网架构模板等
基本信息
书名: 架构之美-行业思想揭秘软件设计之美(评注版)
定价: 89.00元
出版社名称: 电子工业出版社
出版时间: 2018年6月
作者: (美)Diomidis,Spinellis(迪奥米德斯·斯宾耐立思)
译者: 张逸
开本: 16开
ISBN: 9787121338076
目录.
序 xix
Stephen J. Mellor
前言 xxiii
1 部分 论架构
1 章 何谓架构 3
John Klein 与David Weiss
简介 3
创建软件架构 10
架构结构 14
好的架构 19
美丽架构 20
致谢 23
参考文献 23
2 章 两个系统的故事:摩登时代的软件神话 25
Pete Goodliffe
混乱大都市 26
设计之城 33
然后呢 41
轮到你了 41
参考文献 42
2 部分 企业应用架构
3 章 可伸缩架构 45
Jim Waldo
简介 45
上下文 47
架构 51
对架构的思考 57
4 章 记忆留存 63
Michael Nygard
功能与约束 64
工作流 65
架构要素 66
用户反应 87
结论 88
参考文献 88
5 章 面向资源架构:在Web 之中 89
Brian Sletten
简介 89
传统的Web 服务 90
Web 92
面向资源架构 98
数据驱动应用 102
运用面向资源架构 103
结论 109
6 章 数据增长:Facebook 平台的架构 111
Dave Fetterman
简介 111
创建社交Web 服务 117
创建社交数据查询服务 124
创建社交Web 门户:FBML 133
系统的支持功能 146
总结 151
3 部分 系统架构
7 章 XEN 与虚拟化之美 155
Derek Murray 与Keir Fraser
简介 155
Xenoservers 156
虚拟化的挑战 159
半虚拟化 159
Xen 的变化 163
变化中的硬件,变化中的Xen 169
前车之鉴 172
延伸阅读 173
8 章 Guardian:一个容错操作系统环境 175
Greg Lehey
Tandem/16:未来所有计算机都将像这样构建 176
硬件 176
机械设计 178
处理器架构 179
处理器间总线 184
输入/输出 184
进程结构 185
消息系统 186
文件系统 190
逸闻趣事 195
弊端 195
后继者 197
延伸阅读 198
9 章 JPC:纯Java 的X86 PC 模拟器 199
Rhys Newman 与Christopher Dennis
简介 200
概念验证 202
PC 架构 205
Java 性能技巧 206
4GB 放入4GB:这不会奏效 207
保护模式的危险 210
屡败屡战 214
劫持JVM 217
灵活性 229
性 231
吃一堑长一智 232
10 章 元循环虚拟机的力量:Jikes RVM 235
Ian Rogers 与Dave Grove
背景 236
运行时环境之谜 237
Jikes RVM 简史 240
自部署运行时的自举 241
运行时组件 246
前车之鉴 259
参考文献 259
4 部分 终端用户应用架构
11 章 GNU Emacs:滋生的特性为其优势 263
Jim Blandy
Emacs 在使用 264
Emacs 的架构 266
滋生的特性 272
另外两个架构 275
12 章 当集市开始构建教堂 279
Till Adam 与Mirko Boehm
简介 279
KDE 项目的历史与架构 282
Akonadi 287
ThreadWeaver 303
5 部分 语言与架构
13 章 软件架构:面向对象 vs. 面向函数 315
Bertrand Meyer
概览 315
函数式示例 318
评估函数式解决方案的模块化 321
面向对象视图 330
评估和改进面向对象的模块化 336
代理:将操作包裹到对象中 341
致谢 345
参考文献 346
14 章 重读经典 349
Panagiotis Louridas
万物皆对象 353
类型被隐式定义 361
问题 367
土木建筑架构 372
参考文献 380
跋 383
William J. Mitchell
贡献者 387
内容简介
这是荟萃了软件架构领域各位思想真知灼见的经典之作,内容覆盖了软件架构的方方面面,包括架构理论、企业架构、系统架构、应用架构等。这些架构大师们用简洁的文本、真实的案例向读者勾勒出美丽架构的模样,并由此提出设计美丽架构的原则、实践与演进过程。
基本信息
书名:软件架构设计 大型网站技术架构与业务架构融合之道
作 者:余春龙 著
定 价:79
出 版 社:电子工业出版社
出版日期:2019年01月01日
页 数:256
装 帧:平装
ISBN:9787121356032
内容简介
《软件架构设计:大型网站技术架构与业务架构融合之道》系统化地阐述了技术架构与业务架构的方法论与实践。《软件架构设计:大型网站技术架构与业务架构融合之道》内容分为5大部分,第1部分从行业背景出发定义架构的概念与范畴;第2部分细致讨论架构所需的计算机功底,包括编程语言、操作系统、数据库、网络、框架、中间件;第3部分从高并发、高可用、稳定性、分布式事务、Paxos/Raft一致性算法、CAP理论等方面探讨技术架构;第4部分从业务架构思维、微服务、领域驱动设计、技术架构与业务架构融合的角度探讨业务架构;第5部分从个人素质、团队能力两大方面,诠释从技术到管理的转变方法。通过《软件架构设计:大型网站技术架构与业务架构融合之道》,读者可以对大型业务系统的架构方法论有全局的认识,同时对软件架构的核心能力有深刻的理解,对个人的技术成长起到一定的借鉴作用。
《软件架构设计:大型网站技术架构与业务架构融合之道》不仅适合工程师、架构师阅读,也适合企业系统开发人员在内的软件开发从业人员阅读。
作者简介
余春龙,中科院软件所计算机硕士毕业。热衷于高并发高可用架构、业务建模、领域驱动设计,在十年的工作中,经历过游戏、社交、广告、电商等各种类型的项目,积累了较丰富的工程经验。
目录
第1部分 什么是架构
第1章 五花八门的架构师职业 2
1.1 架构师职业分类 2
1.2 架构的分类 2
第2章 架构的道与术 5
2.1 何为道,何为术 5
2.2 道与术的辩证关系 6
第2部分 计算机功底
第3章 语言 10
3.1 层出不穷的编程语言 10
3.2 精通一门语言 10
第4章 操作系统 12
4.1 缓冲I/O和直接I/O 12
4.2 内存映射文件与零拷贝 14
4.2.1 内存映射文件 14
4.2.2 零拷贝 15
4.3 网络I/O模型 17
4.3.1 实现层面的网络I/O模型 17
4.3.2 Reactor模式与Preactor模式 20
4.3.3 select、epoll的LT与ET 20
4.3.4 服务器编程的1+N+M模型 22
4.4 进程、线程和协程 24
4.5 无锁(内存屏障与CAS) 27
4.5.1 内存屏障 27
4.5.2 CAS 30
第5章 网络 31
5.1 HTTP 1.0 31
5.1.1 HTTP 1.0的问题 31
5.1.2 Keep-Alive机制与Content-Length属性 31
5.2 HTTP 1.1 32
5.2.1 连接复用与Chunk机制 32
5.2.2 Pipeline与Head-of-line Blocking问题 33
5.2.3 HTTP/2出现之前的性能提升方法 34
5.2.4 “一来多回”问题 35
5.2.5 断点续传 36
5.3 HTTP/2 36
5.3.1 与HTTP 1.1的兼容 37
5.3.2 二进制分帧 37
5.3.3 头部压缩 39
5.4 SSL/TLS 39
5.4.1 背景 39
5.4.2 对称加密的问题 40
5.4.3 双向非对称加密 41
5.4.4 单向非对称加密 42
5.4.5 中间人攻击 43
5.4.6 数字证书与证书认证中心 44
5.4.7 根证书与CA信任链 45
5.4.8 SSL/TLS协议:四次握手 47
5.5 HTTPS 48
5.6 TCP/UDP 49
5.6.1 可靠与不可靠 49
5.6.2 TCP的“假”连接(状态机) 51
5.6.3 三次握手(网络2将军问题) 53
5.6.4 四次挥手 54
5.7 QUIC 56
5.7.1 不丢包(Raid5算法和Raid6算法) 57
5.7.2 更少的RTT 58
5.7.3 连接迁移 58
第6章 数据库 59
6.1 范式与反范式 59
6.2 分库分表 59
6.2.1 为什么要分 60
6.2.2 分布式ID生成服务 60
6.2.3 拆分维度的选择 60
6.2.4 Join查询问题 61
6.2.5 分布式事务 61
6.3 B+树 62
6.3.1 B+树逻辑结构 62
6.3.2 B+树物理结构 63
6.3.3 非主键索引 65
6.4 事务与锁 66
6.4.1 事务的四个隔离级别 66
6.4.2 悲观锁和乐观锁 67
6.4.3 死锁检测 71
6.5 事务实现原理之1:Redo Log 72
6.5.1 Write-Ahead 73
6.5.2 Redo Log的逻辑与物理结构 74
6.5.3 Physiological Logging 75
6.5.4 I/O写入的原子性(Double Write) 76
6.5.5 Redo Log Block结构 77
6.5.6 事务、LSN与Log Block的关系 78
6.5.7 事务Rollback与崩溃恢复(ARIES算法) 80
6.6 事务实现原理之2:Undo Log 86
6.6.1 Undo Log是否一定需要 86
6.6.2 Undo Log(MVCC) 88
6.6.3 Undo Log不是Log 89
6.6.4 Undo Log与Redo Log的关联 90
6.6.4 各种锁 91
6.7 Binlog与主从复制 94
6.7.1 Binlog与Redo Log的主要差异 94
6.7.2 内部XA – Binlog与Redo Log一致性问题 95
6.7.3 三种主从复制方式 96
6.7.3 并行复制 97
第7章 框架、软件与中间件 99
7.1 对生态体系的认知 99
7.2 框架 99
7.3 软件与中间件 100
第3部分 技术架构之道
第8章 高并发问题 104
8.1 问题分类 104
8.1.1 侧重于“高并发读”的系统 104
8.1.2 侧重于“高并发写”的系统 105
8.1.3 同时侧重于“高并发读”和“高并发写”的系统 106
8.2 高并发读 108
8.2.1 策略1:加缓存 108
8.2.2 策略2:并发读 109
8.2.3 策略3:重写轻读 110
8.2.4 总结:读写分离(CQRS架构) 113
8.3 高并发写 114
8.3.1 策略1:数据分片 114
8.3.2 策略2:任务分片 115
8.3.3 策略3:异步化 117
8.3.4 策略4:批量 123
8.3.5 策略5:串行化+多进程单线程+异步I/O 124
8.4 容量规划 125
8.4.1 吞吐量、响应时间与并发数 125
8.4.2 压力测试与容量评估 127
第9章 高可用与稳定性 129
9.1 多副本 129
9.2 隔离、限流、熔断和降级 130
9.3 灰度发布与回滚 135
9.4 监控体系与日志报警 136
第10章 事务一致性 138
10.1 随处可见的分布式事务问题 138
10.2 分布式事务解决方案汇总 139
10.2.1 2PC 139
10.2.2 最终一致性(消息中间件) 141
10.2.3 TCC 145
10.2.4 事务状态表+调用方重试+接收方幂等 147
10.2.5 对账 148
10.2.6 妥协方案:弱一致性+基于状态的补偿 149
10.2.7 妥协方案:重试+回滚+报警+人工修复 151
10.2.8 总结 152
第11章 多副本一致性 153
11.1 高可用且强一致性到底有多难 153
11.1.1 Kafka的消息丢失问题 153
11.1.2 Kafka消息错乱问题 156
11.2 Paxos算法解析 158
11.2.1 Paxos解决什么问题 158
11.2.2 复制状态机 161
11.2.3 一个朴素而深刻的思想 163
11.2.4 Basic Paxos算法 164
11.2.5 Multi Paxos算法 167
11.3 Raft算法解析 169
11.3.1 为“可理解性”而设计 169
11.3.2 单点写入 170
11.3.3 日志结构 171
11.3.4 阶段1:Leader选举 174
11.3.5 阶段2:日志复制 176
11.3.6 阶段3:恢复阶段 177
11.3.7 安全性保证 177
11.4 Zab算法解析 180
11.4.1 Replicated State Machine vs. Primary-Backup System 180
11.4.2 zxid 182
11.4.3 “序”:乱序提交 vs. 顺序提交 182
11.4.4 Leader选举:FLE算法 184
11.4.5 正常阶段:2阶段提交 186
11.4.6 恢复阶段 186
11.5 三种算法对比 187
第12章 CAP理论 189
12.1 CAP理论的误解 189
12.2 现实世界不存在“强一致性”(PACELC理论) 190
12.3 典型案例:分布式锁 192
第4部分 业务架构之道
第13章 业务意识 196
13.1 产品经理vs.需求分析师 196
13.2 什么叫作一个“业务” 198
13.3 “业务架构”的双重含义 199
13.4 “业务架构”与“技术架构”的区分 200
第14章 业务架构思维 202
14.1 “伪”分层 202
14.2 边界思维 204
14.3 系统化思维 205
14.4 利益相关者分析 206
14.5 非功能性需求分析(以终为始) 208
14.6 视角(横看成岭侧成峰) 209
14.7 抽象 210
14.8 建模 213
14.9 正交分解 215
第15章 技术架构与业务架构的融合 218
15.1 各式各样的方法论 218
15.2 为什么要“领域驱动” 218
15.3 “业务流程”不等于“系统流程” 221
15.4 为何很难设计一个好的领域模型 222
15.5 领域驱动设计与微服务架构的“合” 223
15.6 领域驱动设计与读写分离(CQRS) 224
15.7 业务分层架构模式 225
15.8 管道—过滤器架构模式 226
15.9 状态机架构模式 226
15.10 业务切面/业务闭环架构模式 228
第5部分 从架构到技术管理
第16章 个人素质的提升 232
16.1 能力模型 232
16.2 影响力的塑造 234
第17章 团队能力的提升 237
17.1 不确定性与风险把控 237
17.2 以价值为中心的管理 239
17.3 团队培养 241
基本信息
书名:架构修炼之道:亿级网关.平台开放.分布式.微服务.容错等核心
作 者:王新栋 著
定 价:79
出 版 社:电子工业出版社
出版日期:2019年03月01日
页 数:256
装 帧:平装
ISBN:9787121360374
内容介绍
《架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践》结合实际的生产实践,分别对网关、平台开放、分布式、MQ、RPC、I/O、微服务、容错的内容做了详细介绍。其中的内容不限于概念,而是会下沉到实践背后的感悟与总结。比如本书详细阐述了网关系统是如何“抗量”,又是如何容错的,以及在每次大促中的备战经验。其他内容也是如此,基于实践,源于实践,比如微服务的实战案例、MQ的各种功能场景、消息推送的实践等讲的皆是实践之道。希望读者可以通过《架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践》了解互联网常用架构知识背后的原理及解决问题之道。
《架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践》中介绍的网关、分布式、MQ等知识背后的原理,对于每一位互联网研发人员都有很大的参考意义。
作者介绍
王新栋
现就职于京东,“程序架道”公众号作者。平时热爱总结与分享,对高性能API网关、线程调优、NIO、微服务架构、容错等技术有较深的研究和实战经验。目前致力于带领团队在平台开放技术领域实现突破。
目录
第1章 网关之道
1.1 认识API网关
1.1.1 API网关是什么
1.1.2 API网关涵盖的基本功能
1.1.3 API网关架构示例
1.2 一个API的生命周期
1.2.1 什么是API
1.2.2 生命周期
1.2.3 生命周期的过程
1.3 API网关的基石—泛化调用
1.4 如何发布API到网关系统
1.5 管道技术
1.5.1 管道实现
1.5.2 如何获取管道
1.5.3 管道信息传递
1.5.4 管道的优点
1.5.5 责任链模式
1.6 一个传统网关系统有几种“死”法
1.6.1 关注CPU
1.6.2 关注磁盘
1.6.3 关注网络
1.7 Servlet 3异步原理与实践
1.7.1 什么是Servlet
1.7.2 什么是Servlet规范
1.7.3 同步、异步、阻塞、非阻塞
1.7.4 Servlet 3的异步流程
1.7.5 Servlet 3的异步使用步骤
1.7.6 Servlet 3的异步使用示例
1.7.7 Tomcat NIO Connector、Servlet 3.0 Async和Spring MVC Async的关系
1.7.8 Servlet 3非阻塞I/O
1.8 全异步网关
1.9 脱库与多级缓存
1.9.1 脱库
1.9.2 多级缓存
1.10 热更新
1.11 网关系统的七种武器
1.12 本章小结
第2章 开放之道
2.1 认识OAuth 2.0
2.1.1 什么是OAuth 2.0
2.1.2 角色
2.1.3 OAuth 2.0协议流程
2.1.4 采用OAuth 2.0协议的开放平台
2.1.5 京东宙斯开放(授权码方式场景)
2.2 开放平台
2.2.1 一名开发者的基本需求
2.2.2 完整性
2.2.3 稳定性
2.2.4 安全性
2.2.5 整体技术架构
2.2.6 意义
2.3 如何设计一套SPI应用架构
2.3.1 API和SPI区别
2.3.2 术语约定
2.3.3 业务场景
2.3.4 架构实现
2.3.5 测试
2.3.6 SPI是一种思想
2.4 讲一讲越权
2.4.1 什么是越权访问
2.4.2 越权访问的种类
2.4.3 发生越权访问的根本原因
2.4.4 如何避免与解决
2.4.5 开放平台环境下的越权访问
2.5 从Facebook数据泄漏谈开放安全
2.5.1 OAuth 2.0授权
2.5.2 数据加/解密
2.5.3 IP地址白名单
2.5.4 平台内环境
2.6 API治理
2.6.1 性能
2.6.2 可用率
2.6.3 文档可读性
2.7 API经济
2.7.1 API盈利模式
2.7.2 API市场
2.7.3 API经济价值链
2.8 沙箱环境
2.8.1 协同
2.8.2 维护
2.9 本章小结
第3章 分布式之道
3.1 认识分布式
3.2 分布式事务
3.2.1 什么是分布式事务
3.2.2 CAP和BASE理论
3.3 分布式锁
3.3.1 为什么需要分布式锁
3.3.2 分布式锁的实现方式
3.4 分布式限流
3.4.1 计数器
3.4.2 限速器
3.4.3 限流的维度
3.4.4 流量包
3.4.5 再来谈令牌桶
3.5 衡量性能的指标QPS、TPS等
3.5.1 什么是QPS
3.5.2 什么是TPS
3.5.3 什么是RT
3.5.4 什么是并发数
3.6 本章小结
第4章 MQ之道
4.1 认识JMS
4.1.1 JMS的组成
4.1.2 JMS编程模型
4.1.3 JMS消息结构
4.1.4 JMS消息模型
4.2 带着思考理解MQ下的基本概念
4.2.1 生产者—消费者(Producer-Consumer)
4.2.2 空间解耦
4.2.3 时间解耦
4.2.4 观察者模式与发布/订阅
4.3 消费幂等
4.3.1 什么是幂等操作
4.3.2 是什么引起我们关注消费幂等
4.3.3 如何处理消费幂等
4.4 详述MQ各种功能场景
4.4.1 解耦
4.4.2 削峰填谷
4.4.3 最终一致性
4.4.4 广播消费
4.4.5 使用集群消费模拟广播
4.4.6 重试之坑
4.5 数据异构的武器—MQ+canal
4.5.1 定义
4.5.2 常见应用场景
4.5.3 数据异构方向
4.5.4 数据异构的常用方法
4.5.5 binlog和MQ方式
4.6 关于MQ再问自己几个问题
4.6.1 我想自己控制开始消费如何做
4.6.2 为什么需要消息过滤
4.6.3 过期消息是怎么处理的
4.6.4 消息重试的注意点
4.6.5 为什么需要事务消息
4.6.6 消息为什么没有了顺序
4.7 本章小结
第5章 消息推送之道
5.1 认识消息推送
5.2 构建长连接推送系统之HTTP实践
5.2.1 Web网络结构及配置
5.2.2 基本配置
5.2.3 Transfer-Encoding: chunked
5.2.4 HTTP长连接系统组成结构
5.2.5 Session管理
5.2.6 心跳
5.2.7 消息接收的概念
5.2.8 消息推送的概念
5.2.9 消息追踪
5.2.10 HTTP长连接系统时序调用
5.2.11 创建会话(连接)
5.2.12 心跳逻辑
5.2.13 消息接收实例
5.2.14 消息推送实例
5.2.15 半推半拉
5.2.16 系统优化
5.2.17 测试
5.3 构建消息推送系统之Netty实践
5.3.1 启动
5.3.2 创建会话
5.3.3 心跳
5.3.4 发送消息
5.3.5 注销会话
5.3.6 黏包
5.4 一台服务器可以“跑”多少个连接
5.5 一台服务器可以“跑”多少个线程
5.6 弱网络环境