高性能架构之道(第二版)
书籍简介
本书是一本理论联系实际的软件架构设计指导书,旨在帮助读者完成高性能软件系统的架构设计工作。本书先阐明了高性能与架构的概念,然后从分流设计、服务并行设计、运算并发设计、输入输出设计、数据库设计与优化、缓存设计、可靠性设计、应用保护设计、前端高性能设计等各方面全面介绍了高性能架构的理论和实践知识。书籍内容涵盖CDN与反向代理,分布式系统,并发编程,IO模型,数据库范式、索引、调优、分库分表,Redis原理与应用,Elasticsearch原理与应用,图数据库,缓存更新清理机制与风险解决方案,服务熔断、降级、隔离、限流、恢复,Hystrix框架应用,前端性能分析与调优等知识。本书还总结了常用的架构设计理论,并运用书中知识展现了一个实际软件项目的架构设计步骤,向读者展示高性能架构设计的项目实践全貌。
本书适合软件架构师、工程师、学生阅读,也可作为教材,以帮助读者完善软件开发知识体系和提升软件架构设计能力。
书籍购买地址: 京东
书籍目录
- 第1章 高性能架构
- 1.1 软件架构
- 1.2 软件的质量
- 1.3 高性能概述
- 1.4 软件性能指标
- 1.4.1 吞吐量
- 1.4.2 并发数
- 1.4.3 平均响应时间
- 1.4.4 可靠性指标
- 1.5 性能指标之间的关系
- 1.5.1 并发数对吞吐量的影响
- 1.5.2 并发数对平均响应时间的影响
- 1.5.3 平均响应时间对并发数的影响
- 1.5.4 可靠性指标与其他指标的关系
- 1.6 高性能架构
- 第2章 分流设计
- 2.1 内容分发网络
- 2.1.1 内容分发网络的结构
- 2.1.2 内容分发网络的原理
- 2.2 多地址直连
- 2.3 反向代理
- 2.1 内容分发网络
- 第3章 服务并行设计
- 3.1 并行与并发
- 3.2 集群系统
- 3.2.1 无状态的节点集群
- 3.2.2 单一服务节点集群
- 3.2.3 信息共享的节点集群
- 3.2.4 信息一致的节点集群
- 3.3 分布式系统
- 3.4 微服务系统
- 第4章 运算并发
- 4.1 多进程
- 4.2 多线程
- 4.2.1 线程的状态及转换
- 4.2.2 多线程的应用场景
- 用以提升效率
- 用以实现异步操作
- 4.2.3 多线程的创建
- 继承Thread类
- 基于Runable接口
- 基于Callable接口
- 4.2.4 线程池
- 4.2.4 多线程资源协作
- 内存模型
- 禁止并发修改
- 线程安全对象
- 线程独享资源
- 4.2.5 多线程进度协作
- 总分总式同步
- 栅栏式同步
- 总分总式同步
- 信号量
- 4.3 多协程
- 4.4 运算并发总结
- 第5章 输入输出设计
- 5.1 概念梳理
- 5.1.1 同步与异步
- 5.1.2 阻塞与非阻塞
- 5.2 IO模型
- 5.3 IO模型的层级关系
- 5.4 阻塞式IO模型
- 5.5 非阻塞式IO模型
- 5.6 信号驱动式IO模型
- 5.7 复用式IO模型
- 5.8 异步式IO模型
- 5.9 输入输出模型总结
- 5.1 概念梳理
- 第6章 数据库设计与优化
- 6.1 数据库设计概述
- 6.2 关系型数据库设计
- 6.2.1 设计范式介绍
- 第一范式
- 第二范式
- 第三范式
- BCNF
- 第四范式
- 第五范式
- 6.2.2 反范式设计
- 6.2.1 设计范式介绍
- 6.3 索引原理与优化
- 6.3.1 索引的原理
- Hash索引
- BTree索引
- 位图索引
- 6.3.2 索引生效分析
- 6.3.3 索引的使用
- 计算与类型转化引发的索引失效
- 联合索引的失效
- 模糊匹配引发的索引失效
- 其他索引失效场景
- 6.3.4 索引的利弊
- 6.3.1 索引的原理
- 6.4 数据库引擎
- 6.5 数据库锁
- 6.5.1 乐观锁
- 6.5.2 悲观锁
- 6.6 死锁
- 6.7 事务
- 6.7.1 事务并发导致的问题
- 脏读
- 不可重复读
- 幻读
- 6.7.2 事务隔离级别
- 读未提交
- 读已提交
- 可重复读
- 串行化
- 隔离级别总结
- 6.7.3 自建事务
- 6.7.1 事务并发导致的问题
- 6.8 巨量数据的优化
- 6.8.1 表分区
- 6.8.2 分库分表
- 6.8.3 读写分离
- 主从复制的实现方案
- 主从复制的延迟问题
- 6.9 数据库中间件
- 第7章 非关系型数据库
- 7.1 键值数据库
- 7.1.1 Redis概述
- 7.1.2 数据类型与对应操作
- 7.1.3 应用场景
- 7.2 文档数据库
- 7.2.1 Elasticsearch概述
- 7.2.2 Elasticsearch使用
- 7.3 宽列存储数据库
- 7.4 图数据库
- 7.5 面向对象数据库
- 7.1 键值数据库
- 第8章 缓存设计
- 8.1 缓存的收益
- 8.2 缓存的键与值
- 8.2.1 缓存的键
- 8.2.2 缓存的值
- 8.3 缓存的更新机制
- 8.3.1 时效性更新机制
- 8.3.2 主动更新机制
- Cache Aside机制
- Read/Write Through机制
- Write Behind机制
- 8.4 缓存的清理机制
- 8.4.1 时效式清理
- 8.4.2 数目阈值式清理
- FIFO
- LRU
- 开发实践
- 8.4.3 非强引用式清理
- 8.4.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.6.4 数据库缓存
- 8.7 写缓存
- 8.7.1 写缓存的收益
- 8.7.2 写缓存实践
- 第9章 可靠性设计
- 9.1 软件可靠性概述
- 9.2 软件可靠性指标
- 9.2.1 失效概率
- 9.2.2 失效强度
- 9.2.3 失效率
- 9.3 模块连接方式与可靠性
- 9.3.1 串联系统的可靠性
- 9.3.2 并联系统的可靠性
- 9.3.3 冗余系统的可靠性
- 9.3.4 模块连接方式的可靠性讨论
- 9.4 软件失效模型
- 9.5 可靠性设计
- 9.5.1 消除单点依赖
- 9.5.2 化串联为并联
- 9.5.3 采用集群
- 第10章 应用保护
- 10.1 应用保护概述
- 10.2 应用保护方案
- 10.2.1 降级
- 10.2.2 熔断
- 10.2.3 隔离
- 10.2.4 限流
- 10.2.5 恢复
- 10.2.6 应用保护方案小节
- 10.3 Hystrix
- 10.3.1 运行原理
- 10.3.2 运行设置
- 10.3.3 命令参数
- 10.3.4 使用举例
- 第11章 前端高性能
- 11.1 前端工作分析
- 11.1.1 前端加载过程
- 11.1.2 前端性能分析
- 11.2 资源下载优化
- 11.2.1 资源压缩
- 11.2.2 减少请求
- 资源合并
- 长连接长轮询与推送
- 11.2.3 资源缓存
- 11.3 页面解析优化
- 11.3.1 顺应解析流程
- 11.3.2 应用新型前端框架
- 11.4 懒加载
- 11.5 预操作
- 11.1 前端工作分析
- 第12章 架构设计
- 12.1 软件架构风格
- 12.1.1 管道过滤器架构风格
- 12.1.2 面向对象架构风格
- 12.1.3 基于组件的架构风格
- 12.1.4 事件驱动架构风格
- 12.1.5 分层架构风格
- 12.1.6 C/S架构风格
- 12.1.7 三层C/S架构风格
- 12.1.8 B/S架构风格
- 12.2 软件生命周期
- 12.2.1 需求阶段
- 12.2.2 模型设计
- 12.2.3 概要设计
- 12.2.4 详细设计
- 12.2.5 质量指标设计
- 12.2.6 方案预研
- 12.2.7 软件开发
- 12.1 软件架构风格
- 第13章 高性能架构实践
- 13.1 需求概述
- 13.2 权限系统的相关理论
- 13.2.1 权限模型
- 访问矩阵
- 基于角色的访问控制
- 两种权限模型之间的关系
- 13.2.2 访问控制方式
- 13.2.1 权限模型
- 13.3 模型设计
- 13.3.1 模型调研
- 13.3.2 模型应用
- 用户、角色、权限的处理
- “用户-角色”关系
- “角色-权限”关系
- RBAC各要素实现整理
- 控制方式设计
- 13.4 概要设计
- 13.5 数据层详细设计
- 13.5.1 RBAC数据表的范式设计
- 13.5.2 RBAC数据表的反范式设计
- 13.5.3 RBAC数据表的最终设计
- 13.5.3 MatrixAuth管理类数据表设计
- 13.5.4 MatrixAuth的数据层结构
- 13.6 缓存详细设计
- 13.7 服务端详细设计
- 13.7.1 数据源动态切换
- 13.7.2 数据冗余的一致性保证
- 13.7.3 服务端的操作接口
- 13.8 客户端详细设计
- 13.8.1 可控角色的权限验证
- 13.8.2 自由角色的权限验证
- 13.8.3 用户信息、角色关联信息推送
- 13.9 MatrixAuth项目实践总结
- 13.9.1 MatrixAuth的高性能设计
- 数据层(含缓存)
- 服务端
- 客户端
- 13.9.2 需求完成度分析
- 13.9.3 MatrixAuth的使用简介
- 数据源配置
- MatrixAuthServer配置
- MatrixAuthClient配置
- 鉴权操作
书籍购买地址: 京东