分布式应用系统架构设计与实践9787115572301
正版图书,可开发票,请放心购买。
¥
49.21
6.2折
¥
79.9
全新
库存20件
作者谢文辉
出版社人民邮电出版社
ISBN9787115572301
出版时间2021-10
装帧平装
开本16开
定价79.9元
货号11375870
上书时间2024-12-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
谢文辉,阿里巴巴高级技术专家,曾在华为、魅族、深信服担任架构师及技术经理,具有10年以上的系统开发及架构设计经验。他目前在阿里巴巴东南亚电商平台Lazada负责业务风控架构相关工作。他主导过多个双活机房的设计和构建工作,也主导过多个日均活跃用户数达千万级的应用系统的架构设计、改造及优化工作,对分布式应用系统的高性能、高可用性和高并发处理有较为丰富的经验。他的个人兴趣在于大数据存储处理、大规模系统的高性能、高可用性及多机房架构的设计和构建。
目录
第 一部分 分布式系统架构概述
第 1章 架构的基础概念 3
1.1 架构的几个概念 3
1.1.1 系统与子系统 4
1.1.2 模块与组件 4
1.1.3 组件与框架 4
1.2 架构设计的目标 5
1.2.1 高性能 5
1.2.2 高可用性 6
1.2.3 可扩展性 7
1.2.4 可维护性 8
1.3 小结 9
第 2章 架构的演进 10
2.1 单体架构 10
2.2 分层架构 11
2.3 面向服务架构 12
2.4 微服务架构体系 14
2.4.1 微服务架构 14
2.4.2 服务网格架构 16
2.4.3 单元化架构 17
2.5 小结 18
第二部分 核心理论及技术
第3章 常见的基础组件 21
3.1 数据缓存 21
3.1.1 Redis高可用实现方案 22
3.1.2 Redis集群实现方案 24
3.1.3 Redis跨机房数据同步方案 29
3.2 数据分发 34
3.2.1 Kafka的分区机制及副本机制 34
3.2.2 Kafka高吞吐量实现方案 40
3.2.3 Kafka跨机房双活方案 44
3.3 数据存储 47
3.3.1 关系数据库MySQL 48
3.3.2 列式存储数据库HBase 49
3.3.3 文档型存储数据库MongoDB 51
3.3.4 图数据库Neo4j 54
3.3.5 内容搜索数据库Elasticsearch 57
3.4 服务远程调用 59
3.4.1 RPC架构及原理 59
3.4.2 Dubbo架构及原理 60
3.4.3 gRPC架构及原理 62
3.5 小结 63
第4章 高性能架构 64
4.1 基础概念 64
4.1.1 性能指标 64
4.1.2 利特尔法则 65
4.1.3 系统优化分析 65
4.1.4 系统指标选择 66
4.2 客户端及网络接入 66
4.2.1 浏览器访问优化 66
4.2.2 CDN缓存 68
4.2.3 反向代理 69
4.3 数据存储 71
4.3.1 数据库读写分离 71
4.3.2 数据库分库/分表 82
4.3.3 数据库如何实现平滑扩容 86
4.3.4 NoSQL综合解决方案 90
4.4 数据缓存 95
4.4.1 适合做缓存的场景 95
4.4.2 缓存穿透及解决方案 95
4.4.3 缓存雪崩及解决方案 97
4.4.4 缓存击穿及解决方案 97
4.4.5 如何保障缓存与数据库数据的一致性 100
4.5 业务逻辑 103
4.5.1 异步处理 103
4.5.2 消息队列 106
4.6 架构模式与负载均衡 106
4.6.1 多进程并发模式与多线程并发模式 107
4.6.2 阻塞与非阻塞I/O模式 107
4.6.3 负载均衡架构 109
4.7 小结 110
第5章 高可用架构 111
5.1 分布式系统的几个理论 111
5.1.1 CAP理论 111
5.1.2 BASE理论 114
5.2 数据存储层 116
5.2.1 双机架构 116
5.2.2 数据多副本 118
5.3 业务逻辑层 122
5.3.1 有状态和无状态 122
5.3.2 服务治理 124
5.3.3 服务降级 125
5.3.4 服务限流 130
5.4 多机房架构 133
5.4.1 多机房的几种架构 133
5.4.2 多机房多活架构 138
5.4.3 多机房流量分发 141
5.5 小结 143
第6章 可扩展架构 144
6.1 可扩展的几个维度 145
6.1.1 横向扩展 145
6.1.2 垂直扩展 146
6.1.3 纵深扩展 147
6.2 可扩展架构的实现 148
6.2.1 反向代理层 148
6.2.2 接入层 149
6.2.3 业务逻辑层 150
6.2.4 数据缓存层 152
6.2.5 数据存储层 152
6.3 几种典型可扩展架构 153
6.3.1 分层架构 153
6.3.2 服务化架构 153
6.3.3 单元化架构 154
6.4 小结 155
第7章 可维护架构 156
7.1 系统监控工具 156
7.1.1 Zabbix监控系统介绍 156
7.1.2 Prometheus介绍 158
7.1.3 中间件监控系统介绍 159
7.2 业务日志的监控及分析 162
7.2.1 日志采集及清洗 163
7.2.2 日志的传输及存储 165
7.2.3 日志查询及可视化 166
7.3 业务数据的安全监控及分析 167
7.3.1 数据安全防护方案 167
7.3.2 数据授权及审计系统 168
7.3.3 数据血缘追踪 169
7.4 小结 170
第三部分 架构实践案例
第8章 账号系统 173
8.1 系统整体架构 173
8.1.1 注册服务 173
8.1.2 认证服务 175
8.1.3 授权服务 176
8.2 关键问题及解决方案 177
8.2.1 如何解决会话粘连问题 177
8.2.2 如何实现数据一致性 181
8.2.3 如何实现安全降级 183
8.3 小结 184
第9章 秒杀系统 185
9.1 系统整体架构 185
9.1.1 接入网关 186
9.1.2 订单及库存服务 187
9.1.3 支付服务 189
9.2 关键问题及解决方案 190
9.2.1 如何优化流量金字塔模型 190
9.2.2 如何解决并发场景下的库存扣减一致性问题 191
9.2.3 如何提升热点账户的冲扣性能 193
9.3 小结 197
第 10章 消息推送系统 198
10.1 系统整体架构 198
10.1.1 业务接入层 199
10.1.2 通道层 200
10.1.3 客户端层 200
10.2 关键问题及解决方案 200
10.2.1 如何实现过载保护 201
10.2.2 如何提升消息分发性能 202
10.2.3 如何解决海量消息推送明细的存储问题 203
10.2.4 如何降低推送的客户端功耗 203
10.2.5 如何解决消息重复推送问题 204
10.2.6 如何解决海量长连接问题 205
10.2.7 如何解决客户端消息伪造问题 206
10.3 小结 206
第 11章 区块链系统 207
11.1 系统整体架构及优化 207
11.1.1 接入层 208
11.1.2 池化层及指令处理层 210
11.1.3 网络层 213
11.1.4 存储层 215
11.2 小结 216
内容摘要
随着互联网技术的发展,分布式应用系统对具备高性能、高可用性、可扩展性和可维护性的架构的依赖度越来越高。本书以理论与实践相结合的方式,对分布式应用系统的架构设计进行系统、全面的阐述。本书分为3个部分,第一部分是分布式系统架构概述,介绍一些分布式系统架构下常见的基础概念和架构设计的目标;第二部分是核心理论及技术,介绍分布式应用系统下常见的技术中间件机制和使用场景,着重介绍分布式应用系统在高性能、高可用性、可扩展性和可维护性等方面常见的优化技术;第三部分是架构实践案例,梳理几种常见的大型分布式应用系统的架构,并结合具体问题进行分析,使读者能够真正理解设计分布式应用系统架构所面临的问题及解决问题的思路。
本书主要面向初/中/不错程序员和架构师,但书中的部分内容也适合产品经理、项目经理阅读。此外,本书内容由浅入深且案例丰富,也适合作为培训教材。
主编推荐
1.分布式系统是为了解决资源(如计算、存储等)紧缺的问题而出现的,它包含分布式应用系统和分布式中间件系统;
2.本书从基础的架构概念入手,由浅入深地讲解分布式应用系统的核心理论,形成了完整的方法论。
3.本书结合账号系统、秒杀系统、消息推送系统和区块链系统这4种常见的大型分布式应用系统,详细讲解了架构的实现细节。
4.阅读本书,读者可以掌握分布式应用系统的理论体系,并具备业务实战能力。
精彩内容
第 一部分 分布式系统架构概述 第 1章 架构的基础概念 3 1.1 架构的几个概念 3 1.1.1 系统与子系统 4 1.1.2 模块与组件 4 1.1.3 组件与框架 4 1.2 架构设计的目标 5 1.2.1 高能 5 1.2.2 高可用 6 1.2.3 可扩展 7 1.2.4 可维护 8 1.3 小结 9 第 2章 架构的演进 10 2.1 单体架构 10 2.2 分层架构 11 2.3 面向服务架构 12 2.4 微服务架构体系 14 2.4.1 微服务架构 14 2.4.2 服务网格架构 16 2.4.3 单元化架构 17 2.5 小结 18 部分 核心理论及技术 第3章 常见的基础组件 21 3.1 数据缓存 21 3.1.1 Redis高可用实现方案 22 3.1.2 Redis集群实现方案 24 3.1.3 Redis跨机房数据同步方案 29 3.2 数据分发 34 3.2.1 Kafka的分区机制及副本机制 34 3.2.2 Kafka高吞吐量实现方案 40 3.2.3 Kafka跨机房双活方案 44 3.3 数据存储 47 3.3.1 关系数据库MySQL 48 3.3.2 列式存储数据库HBase 49 3.3.3 文档型存储数据库MongoDB 51 3.3.4 图数据库Neo4j 54 3.3.5 内容搜索数据库Elasticsearch 57 3.4 服务远程调用 59 3.4.1 RPC架构及原理 59 3.4.2 Dubbo架构及原理 60 3.4.3 gRPC架构及原理 62 3.5 小结 63 第4章 高能架构 64 4.1 基础概念 64 4.1.1 能指标 64 4.1.2 利特尔法则 65 4.1.3 系统优化分析 65 4.1.4 系统指标选择 66 4.2 客户端及网络接入 66 4.2.1 浏览器访问优化 66 4.2.2 CDN缓存 68 4.2.3 反向代理 69 4.3 数据存储 71 4.3.1 数据库读写分离 71 4.3.2 数据库分库/分表 82 4.3.3 数据库如何实现平滑扩容 86 4.3.4 NoSQL综合解决方案 90 4.4 数据缓存 95 4.4.1 适合做缓存的场景 95 4.4.2 缓存穿透及解决方案 95 4.4.3 缓存雪崩及解决方案 97 4.4.4 缓存击穿及解决方案 97 4.4.5 如何保障缓存与数据库数据的一致 100 4.5 业务逻辑 103 4.5.1 异步处理 103 4.5.2 消息队列 106 4.6 架构模式与负载均衡 106 4.6.1 多进程并发模式与多线程并发模式 107 4.6.2 阻塞与非阻塞I/O模式 107 4.6.3 负载均衡架构 109 4.7 小结 110 第5章 高可用架构 111 5.1 分布式系统的几个理论 111 5.1.1 CAP理论 111 5.1.2 BASE理论 114 5.2 数据存储层 116 5.2.1 双机架构 116 5.2.2 数据多副本 118 5.3 业务逻辑层 122 5.3.1 有状态和无状态 122 5.3.2 服务治理 124 5.3.3 服务降级 125 5.3.4 服务限流 130 5.4 多机房架构 133 5.4.1 多机房的几种架构 133 5.4.2 多机房多活架构 138 5.4.3 多机房流量分发 141 5.5 小结 143 第6章 可扩展架构 144 6.1 可扩展的几个维度 145 6.1.1 横向扩展 145 6.1.2 垂直扩展 146 6.1.3 纵深扩展 147 6.2 可扩展架构的实现 148 6.2.1 反向代理层 148 6.2.2 接入层 149 6.2.3 业务逻辑层 150 6.2.4 数据缓存层 152 6.2.5 数据存储层 152 6.3 几种典型可扩展架构 153 6.3.1 分层架构 153 6.3.2 服务化架构 153 6.3.3 单元化架构 154 6.4 小结 155 第7章 可维护架构 156 7.1 系统监控工具 156 7.1.1 Zabbix监控系统介绍 156 7.1.2 Prometheus介绍 158 7.1.3 中间件监控系统介绍 159 7.2 业务日志的监控及分析 162 7.2.1 日志采集及清洗 163 7.2.2 日志的传输及存储 165 7.2.3 日志查询及可视化 166 7.3 业务数据的监控及分析 167 7.3.1 数据防护方案 167 7.3.2 数据授权及审计系统 168 7.3.3 数据血缘追踪 169 7.4 小结 170 第三部分 架构实践案例 第8章 账号系统 173 8.1 系统整体架构 173 8.1.1 注册服务 173 8.1.2 认证服务 175 8.1.3 授权服务 176 8.2 关键问题及解决方案 177 8.2.1 如何解决会话粘连问题 177 8.2.2 如何实现数据一致 181 8.2.3 如何实现降级 183 8.3 小结 184 第9章 系统 185 9.1 系统整体架构 185 9.1.1 接入网关 186 9.1.2 订单及库存服务 187 9.1.3 支付服务 189 9.2 关键问题及解决方案 190 9.2.1 如何优化流量金字塔模型 190 9.2.2 如何解决并发场景下的库存扣减一致问题 191 9.2.3 如何提升热点账户的冲扣能 193 9.3 小结 197 第 10章 消息推送系统 198 10.1 系统整体架构 198 10.1.1 业务接入层 199 10.1.2 通道层 200 10.1.3 客户端层 200 10.2 关键问题及解决方案 200 10.2.1 如何实现过载保护 201 10.2.2 如何提升消息分发能 202 10.2.3 如何解决海量消息推送明细的存储问题 203 10.2.4 如何降低推送的客户耗 203 10.2.5 如何解决消息重复推送问题 204 10.2.6 如何解决海量长连接问题 205 10.2.7 如何解决客户端消息伪造问题 206 10.3 小结 206 第 11章 区块链系统 207 11.1 系统整体架构及优化 207 11.1.1 接入层 208 11.1.2 池化层及指令处理层 210 11.1.3 网络层 213 11.1.4 存储层 215 11.2 小结 216
媒体评论
分布式应用系统架构是一个历久弥新的话题。本书从分布式系统架构的基础概念和演进入手,重点介绍分布式应用系统架构的核心技术及理论,并构建一套分布式应用系统架构方法论,基于方法论给出实践案例。本书清晰、完整地提供了分布式应用系统架构设计与实践的全视角,对广大技术爱好者大有裨益。 ——吴志华(天施),阿里巴巴集团研究员、Lazada买家技术负责人 在互联网环境下,如何解决高日活带来的高并发挑战?如何解决跨机房多活问题?本书从理论到实践,还原并呈现了解决以上问题的思考与行动过程:首先从理论层面介绍分布式应用系统架构的概念和设计目标,然后介绍常见的中间件技术及其适用场景,最后结合实际案例手把手指导读者解决实际问题。 ——胡四海(知命),阿里巴巴集团CRO资深技术专家 作者在本书中总结了他在分布式应用系统架构设计与实践方面的经验,这些思考和总结在其过往所负责的产品和平台中经过了系统的实践检验。例如,他在深信服的云端安全大数据平台上的相关实践有力地帮助业务取得了成功。本书值得相关从业和研究人员参考。 ——古亮博士,深信服技术副总裁兼首席科学家 有幸曾与作者在魅族共事,他对技术的专注和钻研保障了魅族多个高并发业务系统的稳定性,例如手机的Push系统支持亿级在线和千万级并发。本书深入浅出、实战性强,是一本分布式应用系统架构的好书! ——李柯辰,WakeData创始人兼CEO、前魅族科技平台事业部总经理 本书作者是一位认真、严谨的程序员、架构师。本书详细地讲解了分布式应用系统常用的中间件和架构,不管读者是刚入门还是已有多年经验,都能从中汲取知识,在技术选型、系统架构等方面产生一些新的想法,少走弯路。 ——彭旭,《HBase入门与实践》作者、WakeData后端技术负责人
— 没有更多了 —
以下为对购买帮助不大的评价