描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121492457丛书名: 数智技术丛书
本书是一本理论联系实际的软件架构设计指导书,旨在帮助读者完成高性能软件系统的架构设计工作。本书先阐明了高性能与架构的概念,然后从分流设计、服务并行设计、运算并发设计、输入输出设计、数据库设计与优化、缓存设计、可靠性设计、应用保护设计、前端高性能设计等方面,全面介绍了高性能架构的理论和实践知识。内容涵盖CDN与反向代理,分布式系统,并发编程,IO模型,数据库范式、索引、调优、分库分表,Redis原理与应用,Elasticsearch原理与应用,图数据库,缓存更新清理机制与风险解决方案,服务熔断、降级、隔离、限流、恢复,Hystrix框架应用,前端性能分析与调优等知识。本书还总结了常用的架构设计理论,并运用书中知识展现了一个实际软件项目的架构设计步骤,向读者展示高性能架构设计的项目实践全貌。本书适合软件架构师、工程师、学生阅读,也可作为教材,以帮助读者完善软件开发知识体系和提升软件架构设计能力。
第2版前言
目 录
第1章 高性能架构 001
1.1 软件架构 001
1.2 软件的质量 002
1.3 高性能概述 004
1.4 软件性能指标 005
1.4.1 吞吐量 005
1.4.2 并发数 005
1.4.3 平均响应时间 006
1.4.4 可靠性指标 007
1.5 性能指标之间的关系 007
1.5.1 并发数对吞吐量的影响 007
1.5.2 并发数对平均响应时间的影响 009
1.5.3 平均响应时间对并发数的影响 010
1.5.4 可靠性指标与其他指标的关系 011
1.6 高性能架构总结 011
第2章 分流设计 012
2.1 内容分发网络 012
2.1.1 内容分发网络的结构 013
2.1.2 内容分发网络的原理 014
2.2 多地址直连 017
2.3 反向代理 018
第3章 服务并行设计 022
3.1 并行与并发 022
3.2 集群系统 023
3.2.1 无状态的节点集群 024
3.2.2 单一服务节点集群 024
3.2.3 信息共享的节点集群 026
3.2.4 信息一致的节点集群 027
3.3 分布式系统 028
3.4 微服务系统 030
第4章 运算并发设计 032
4.1 多进程 032
4.2 多线程 033
4.2.1 线程的状态及转换 033
4.2.2 多线程的应用场景 034
4.2.3 多线程的创建 035
4.2.4 线程池 039
4.2.5 多线程资源协作 042
4.2.6 多线程进度协作 048
4.3 多协程 060
4.4 运算并发总结 062
第5章 输入输出设计 064
5.1 概念梳理 064
5.1.1 同步与异步 064
5.1.2 阻塞与非阻塞 065
5.2 IO模型 066
5.3 IO模型的层级关系 068
5.4 阻塞式IO模型 068
5.5 非阻塞式IO模型 070
5.6 信号驱动式IO模型 071
5.7 复用式IO模型 071
5.8 异步式IO模型 074
5.9 输入输出模型总结 077
第6章 数据库设计与优化 078
6.1 数据库设计概述 078
6.2 关系型数据库设计 079
6.2.1 设计范式介绍 080
6.2.2 反范式设计 087
6.3 索引原理与优化 088
6.3.1 索引的原理 088
6.3.2 索引生效分析 092
6.3.3 索引的使用 094
6.3.4 索引的利弊 099
6.4 数据库引擎 100
6.5 数据库锁 101
6.5.1 乐观锁 101
6.5.2 悲观锁 102
6.6 死锁 103
6.7 事务 105
6.7.1 事务并发导致的问题 105
6.7.2 事务隔离级别 107
6.7.3 自建事务 109
6.8 巨量数据的优化 110
6.8.1 表分区 110
6.8.2 分库分表 113
6.8.3 读写分离 115
6.9 数据库中间件 118
第7章 非关系型数据库 120
7.1 键值数据库 121
7.1.1 Redis概述 121
7.1.2 数据类型与对应操作 121
7.1.3 应用场景 132
7.2 文档数据库 132
7.2.1 Elasticsearch概述 133
7.2.2 Elasticsearch的使用 135
7.3 宽列存储数据库 139
7.4 图数据库 142
7.5 面向对象数据库 144
?
第8章 缓存设计 148
8.1 缓存的收益 148
8.2 缓存的键与值 149
8.2.1 缓存的键 149
8.2.2 缓存的值 153
8.3 缓存的更新机制 155
8.3.1 时效性更新机制 155
8.3.2 主动更新机制 156
8.4 缓存的清理机制 159
8.4.1 时效式清理 160
8.4.2 数目阈值式清理 160
8.4.3 非强引用式清理 164
8.4.4 清理策略使用实践 166
8.5 缓存的风险点 167
8.5.1 缓存穿透 167
8.5.2 缓存雪崩 168
8.5.3 缓存击穿 168
8.5.4 缓存预热 169
8.6 缓存的位置 169
8.6.1 客户端缓存 171
8.6.2 静态缓存 173
8.6.3 服务缓存 174
8.6.4 数据库缓存 174
8.7 写缓存 175
8.7.1 写缓存的收益问题 175
8.7.2 写缓存实践 176
第9章 可靠性设计 178
9.1 软件可靠性概述 178
9.2 软件可靠性指标 179
9.2.1 失效概率 179
9.2.2 失效强度 179
9.2.3 失效率 179
9.3 模块连接方式与可靠性 180
9.3.1 串联系统的可靠性 180
9.3.2 并联系统的可靠性 180
9.3.3 冗余系统的可靠性 180
9.3.4 模块连接方式的可靠性讨论 181
9.4 软件失效模型 181
9.5 可靠性设计 182
9.5.1 消除单点依赖 182
9.5.2 化串联为并联 183
9.5.3 采用集群 183
第10章 应用保护 185
10.1 应用保护概述 185
10.2 应用保护方案 186
10.2.1 降级 186
10.2.2 熔断 188
10.2.3 隔离 188
10.2.4 限流 190
10.2.5 恢复 195
10.2.6 应用保护方案小结 196
10.3 Hystrix 196
10.3.1 运行原理 196
10.3.2 运行设置 198
10.3.3 命令参数 200
10.3.4 使用举例 203
第11章 前端高性能 218
11.1 前端工作分析 218
11.1.1 前端加载过程 218
11.1.2 前端性能分析 219
11.2 资源下载优化 221
11.2.1 资源压缩 221
11.2.2 减少请求 222
11.2.3 资源缓存 227
11.3 页面解析优化 231
11.3.1 顺应解析流程 231
11.3.2 应用新型前端框架 232
11.4 懒加载 232
11.5 预操作 233
第12章 架构设计理论 234
12.1 软件架构风格 234
12.1.1 管道过滤器架构风格 235
12.1.2 面向对象架构风格 235
12.1.3 基于组件的架构风格 236
12.1.4 事件驱动架构风格 236
12.1.5 分层架构风格 236
12.1.6 C/S架构风格 237
12.1.7 三层C/S架构风格 237
12.1.8 B/S架构风格 238
12.2 软件生命周期 239
12.2.1 需求阶段 240
12.2.2 模型设计 241
12.2.3 概要设计 241
12.2.4 详细设计 242
12.2.5 质量指标设计 242
12.2.6 方案预研 243
12.2.7 软件开发 243
第13章 高性能架构实践 244
13.1 需求概述 244
13.2 权限系统的相关理论 246
13.2.1 权限模型 247
13.2.2 访问控制方式 252
13.3 模型设计 252
13.3.1 模型调研 253
13.3.2 模型应用 253
13.4 概要设计 259
13.5 数据层详细设计 262
13.5.1 RBAC数据表的范式设计 262
13.5.2 RBAC数据表的反范式设计 263
13.5.3 RBAC数据表的最终设计 265
13.5.4 MatrixAuth管理类数据表设计 266
13.5.5 MatrixAuth的数据层结构 268
13.6 缓存详细设计 268
13.7 服务端详细设计 269
13.7.1 数据源动态切换 270
13.7.2 数据冗余的一致性保证 271
13.7.3 服务端的操作接口 271
13.8 客户端详细设计 272
13.8.1 可控角色的权限验证 273
13.8.2 自由角色的权限验证 274
13.8.3 用户信息、角色关联信息推送 275
13.9 MatrixAuth项目实践总结 275
13.9.1 MatrixAuth的高性能设计 276
13.9.2 需求完成度分析 277
13.9.3 MatrixAuth的使用简介 277
评论
还没有评论。