网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 性能之道:分布式系统全栈性能优化
分类 教育考试-考试-计算机类
作者 于君泽 曹洪伟 李伟山 秦金卫 陈龙泉
出版社 机械工业出版社
下载
简介
编辑推荐
性能的重要性越来越高,但是要想真正实现高性能,必须具有架构思维,从多个层面进行设计和优化。
在AI时代,具有性能+架构这种综合性能力的技术人将成为企业中的高薪者。
本书以方法论为基础,站在架构层面,以网络、通信、客户端、单服务器、数据库为优化方向,深入解读软件全栈优化解决方案,内含4大主流产品优化案例。可以帮助你成为企业中的高端人才。
内容推荐
内容简介
这是一本从点、线、面、体4个维度深度解读分布式系统性能优化方法的专业工具书,更是一套全栈性能优化解决方案。其中,“点”指的是代码中的单个语句或函数,“线”指的是代码中的执行路径,“面”则上升到模块、子系统级别,“体”则指的是整个系统。4个维度对应4个不同的优化层次,只有这4个维度配合,才可以真正实现分布式系统的整体性优化。
全书融合了5位长期(最长有近30年工作经验)从事软件开发及优化工作的一线专家的实践经验和深刻理解,不仅从理论层面深入解读了性能优化的本质,还从软件开发整体流程的角度构建性能优化体系和评估策略。全书本着“没有jue对的好设计,只有适合的设计”的理念展开介绍,不仅提供可落地的技巧,还直指本质,让读者知其然并知其所以然,从而设计出适合自己的性能优化方案。
本书共分为17章。
第1~4章 主要介绍作者对性能优化的理解以及性能优化体系及评测方法,这部分的目的是帮读者形成性能优化方法论,其中包括架构的本质、性能优化的本质、性能优化策略、性能优化4个维度、影响性能的因素、性能测试工具、性能测试方法和流程等重点内容。
第5~9章 对网络、通信、客户端、单服务实体、数据库这5个性能约束特点进行深度剖析,并给出具体的优化方法与策略。
第10章和第11章分别对缓存系统、消息队列在性能优化中的应用进行解读,这两个是实现高性能的途径,也是研发人员必须掌握的技巧。
第12~15章通过对智能音箱、网上商城、营销红包、交易系统4个典型案例性能设计与优化的全面解读,帮读者学以致用,并更深刻理解性能优化的原理。
第16章和第17章分别介绍全链路观测或压测的具体实现方法与应用场景,以
目录
目  录<br />前言 性能是软件非功能特性的基本面<br />认知篇<br />第1章 软件架构的时空观 2<br />1.1 软件架构的时空定义 2<br />1.2 软件架构的分类 3<br />1.2.1 体系结构上的分类 3<br />1.2.2 流程决策上的架构分类 4<br />1.3 软件架构设计的原则与模式 5<br />1.3.1 软件架构设计的原则 5<br />1.3.2 软件架构设计的模式 6<br />1.4 软件架构的常用技术栈 8<br />1.5 本章小结 10<br />第2章 软件性能的时空观 11<br />2.1 软件性能的宏观多维模型 11<br />2.1.1 系统边界 12<br />2.1.2 内部结构 13<br />2.1.3 外部效应 13<br />2.1.4 连接输入 14<br />2.1.5 本节小结 14<br />2.2 软件性能的一般含义 14<br />2.3 软件性能的时空视角 15<br />2.3.1 系统性能的时间指标 16<br />2.3.2 软件性能的空间指标 17<br />2.3.3 系统性能指标的时空关联 18<br />2.3.4 常见的软件性能指标 18<br />2.4 软件性能的描述方式与工具 19<br />2.4.1 软件性能的时间描述——<br /> 时序图 20<br />2.4.2 软件性能的空间描述——<br /> 组件描述直方图 20<br />2.5 软件的性能测试与监控 20<br />2.5.1 性能测试 21<br />2.5.2 监控性能拐点 21<br />2.5.3 容量规划 22<br />2.6 本章小结 22<br />第3章 软件性能优化体系 23<br />3.1 软件性能优化策略 23<br />3.1.1 控制资源需求相关因素 24<br />3.1.2 管理资源相关因素 25<br />3.2 基于“点”的性能优化 27<br />3.3 基于“线”的性能优化 28<br />3.4 基于“面”的性能优化 30<br />3.5 基于“体”的性能优化 33<br />3.5.1 第一阶段:常规优化 34<br />3.5.2 第二阶段:使用缓存与<br /> 读写分离 34<br />3.5.3 第三阶段:异步化与事务 35<br />3.6 性能优化的PDCA 37<br />3.7 性能与其他非功能要素 38<br />3.8 本章小结 39<br />第4章 性能测试与评估 40<br />4.1 软件性能的度量 40<br />4.1.1 性能测试的目的及意义 40<br />4.1.2 性能测试的度量指标 42<br />4.1.3 常见基础设施性能指标 44<br />4.2 性能测试常用工具 45<br />4.2.1 性能测试场景 45<br />4.2.2 性能测试工具简介 47<br />4.2.3 性能测试工具选择 51<br />4.3 性能测试的方法、误区和流程 53<br />4.3.1 性能测试的方法 53<br />4.3.2 性能测试的误区 54<br />4.3.3 性能测试的流程 56<br />4.4 性能测试的结果分析与评估 61<br />4.4.1 施压机器的指标观测 62<br />4.4.2 软件的指标分析 64<br />4.4.3 软件的事后评估 69<br />4.5 本章小结 71<br />实践篇<br />第5章 网络性能 74<br />5.1 互联网的性能问题 74<br />5.1.1 规模问题 75<br />5.1.2 距离瓶颈 75<br />5.2 内容分发的方式与性能 75<br />5.2.1 集中托管 75<br />5.2.2 数据中心 76<br />5.2.3 分布式CDN 76<br />5.2.4 P2P网络 77<br />5.3 CDN的选择 77<br />5.4 应用层的网络性能优化 78<br />5.4.1 减少传输层开销 79<br />5.4.2 寻找更好的路由 79<br />5.4.3 内容预取 79<br />5.4.4 使用压缩和增量编码 79<br />5.4.5 边缘组装 80<br />5.4.6 边缘计算 80<br />5.5 计算密集型应用的性能提升——<br /> 高性能网络 80<br />5.5.1 Inf?iniband网络与RDMA 81<br />5.5.2 RDMA的关键特性 82<br />5.5.3 RDMA的上层接口 83<br />5.5.4 RDMA的底层实现 85<br />5.5.5 RDMA的性能优势与<br /> 主要应用场景 86<br />5.6 网络性能观测工具 86<br />5.6.1 网络可观测性建设 87<br />5.6.2 网络分析工具 88<br />5.7 本章小结 89<br />第6章 通信性能 90<br />6.1 面向互联网的软件 90<br />6.1.1 网络应用并非只是计算 90<br />6.1.2 计算中的通信视角 91<br />6.1.3 网络应用的通信视角 92<br />6.2 通信协议的分层设计与优化 94<br />6.2.1 通信协议的分层设计 94<br />6.2.2 通信协议的优化 95<br />6.3 软件通信中的数据组织 95<br />6.3.1 XML、JSON和<br /> Protocol Buffer 96<br />6.3.2 性能视角的数据包大小 96<br />6.4 软件通信中的复用机制 97<br />6.5 软件通信的纠错处理 98<br />6.5.1 前向纠错与重传纠错 98<br />6.5.2 重传机制 99<br />6.6 软件通信中的流量控制 100<br />6.6.1 反向压力 100<br />6.6.2 减负载 100<br />6.6.3 熔断 101<br />6.7 通信协议的优化示例:基于<br /> HTTP的性能优化 102<br />6.7.1 链路复用 102<br />6.7.2 数据压缩 103<br />6.7.3 SSL加速 103<br />6.8 本章小结 103<br />第7章 客户端性能/前端性能<br /> 优化 105<br />7.1 性能优化指标 105<br />7.1.1 以用户为中心的性能指标 106<br />7.1.2 三大核心指标 107<br />7.1.3 前端性能测量工具汇总 112<br />7.2 前端系统优化 113<br />7.2.1 HTTP中的性能优化 113<br />7.2.2 代码压缩 116<br />7.2.3 JavaScript中的性能优化 117<br />7.2.4 Webpack优化 121<br />7.2.5 Vue项目性能优化 128<br />7.3 客户端系统优化 131<br />7.3.1 Flutter项目优化 131<br />7.3.2 PC端QT项目优化 138<br />7.3.3 客户端性能监控的思考 139<br />7.4 本章小结 140<br />第8章 单服务实体的性能优化 141<br />8.1 单服务实体性能问题定位的<br /> 简单策略 141<br />8.1.1 度量指标 142<br />8.1.2 资源列表 142<br />8.1.3 功能模块图 143<br />8.1.4 度量方法 143<br />8.1.5 软件资源 143<br />8.1.6 性能定位的简单策略 144<br />8.2 操作系统的配置优化 144<br />8.3 代码性能的基础保障——<br /> 静态分析 146<br />8.4 API的性能约定 147<br />8.4.1 面向API的性能分类 147<br />8.4.2 API的性能约定 149<br />8.5 资源池的应用 151<br />8.5.1 连接池 152<br />8.5.2 线程池 155<br />8.5.3 内存池 156<br />8.6 本章小结 157<br />第9章 数据库性能 158<br />9.1 从数据库技术发展看性能问题 158<br />9.1.1 数据库对系统性能的影响 158<br />9.1.2 数据库技术的整体发展 159<br />9.1.3 关系数据库的诸多挑战 159<br />9.1.4 NoSQL运动的百花齐放 164<br />9.1.5 分布式演进的步步为营 164<br />9.1.6 分布式数据库的风起云涌 168<br />9.2 面向分布式应用的数据库<br /> 性能分析 170<br />9.2.1 制定数据库性能规划目标 170<br />9.2.2 通过压测了解数据库性能 170<br />9.2.3 分析应用数据库性能瓶颈 171<br />9.2.4 数据库性能优化一般方法 171<br />9.3 MySQL的常见优化方法 174<br />9.3.1 操作系统参数优化 174<br />9.3.2 数据库配置优化 175<br />9.3.3 数据库设计优化 178<br />9.3.4 SQL查询优化 184<br />9.3.5 SQL写入优化 187<br />9.3.6 应用连接池优化 187<br />9.4 本章小结 189<br />第10章 缓存的应用 190<br />10.1 无处不在的缓存 191<br />10.2 客户端缓存 192<br />10.2.1 页面缓存 192<br />10.2.2 浏览器缓存 194<br />10.2.3 App上的缓存 195<br />10.3 网络端缓存 196<br />10.3.1 Web代理缓存 196<br />10.3.2 边缘缓存 197<br />10.4 服务端缓存 198<br />10.4.1 平台级缓存 198<br />10.4.2 分布式缓存的应用 198<br />10.5 数据库缓存 199<br />10.5.1 数据库缓存:MySQL的<br /> 查询缓存 199<br />10.5.2 检验Query Cache的<br /> 合理性 200<br />10.5.3 数据库缓存:InnoDB的<br /> 缓存性能 200<br />10.6 营销场景案例:优惠券<br /> (红包)发放与核销 202<br />10.7 电商案例:应用多级缓存<br /> 模式支撑海量读服务 204<br />10.7.1 多级缓存介绍 204<br />10.7.2 如何缓存数据 205<br />10.8 本章小结 208<br />第11章 消息队列 210<br />11.1 消息队列概述 210<br />11.2 消息队列使用场景 211<br />11.2.1 削峰填谷 211<br />11.2.2 应用解耦 213<br />11.2.3 异步处理 213<br />11.2.4 分布式事务一致性 214<br />11.2.5 大数据分析 218<br />11.3 消息中间件的选型 219<br />11.3.1 RocketMQ 221<br />11.3.2 RabbitMQ 222<br />11.3.3 ActiveMQ 223<br />11.3.4 Kafka 223<br />11.4 本章小结 224<br />案例篇<br />第12章 小度音箱的性能优化 228<br />12.1 智能音箱的组成和系统架构 228<br />12.1.1 对话式AI操作系统——<br /> DuerOS 229<br />12.1.2 智能音箱的典型工作<br /> 流程 231<br />12.2 小度音箱的性能分析 232<br />12.2.1 核心的性能指标 232<br />12.2.2 核心指标的度量 232<br />12.3 小度音箱系统的网络拓扑<br /> 优化 234<br />12.4 小度音箱系统的应用协议<br /> 优化 234<br />12.5 小度音箱系统的业务逻辑<br /> 优化 235<br />12.5.1 智能音箱业务中的<br /> 延时分布 236<br />12.5.2 预测预取 236<br />12.5.3 连接池的应用 237<br />12.6 小度音箱系统的缓存应用 238<br />12.7 本章小结 238<br />第13章 网上商城的性能优化 239<br />13.1 网上商城的架构与业务流程 239<br />13.1.1 核心模块 242<br />13.1.2 核心业务 242<br />13.2 商城系统的性能指标 244<br />13.3 网上商城核心模块的性能<br /> 优化 245<br />13.3.1 商品管理 245<br />13.3.2 用户管理 248<br />13.3.3 购物车管理 251<br />13.3.4 订单管理 254<br />13.3.5 系统设计 257<br />13.4 本章小结 274<br />第14章 典型并发场景——<br /> 营销红包的性能优化 275<br />14.1 类支付宝红包系统的业务流<br /> 和挑战 275<br />14.1.1 类支付宝红包业务动作<br /> 和潜在技术挑战分析 275<br />14.1.2 讨论方案:大商户红包<br /> 热点问题 276<br />14.1.3 多级缓存策略 277<br />14.1.4 讨论方案:单笔支付咨询<br /> 多红包问题 277<br />14.2 类微信红包系统的业务流和<br /> 挑战 278<br />14.2.1 类微信红包业务动作<br /> 分析 278<br />14.2.2 异步化 278<br />14.2.3 SET化:分拆资源 279<br />14.2.4 无并发写的实践 279<br />14.3 预加载和考虑备案 280<br />14.4 性能优化策略与案例的关系 281<br />14.5 本章小结 282<br />第15章 支付系统/核心交易<br /> 系统的性能优化 283<br />15.1 支付系统/核心交易系统的<br /> 架构特点 284<br />15.1.1 支付系统的作用 284<br />15.1.2 支付系统的架构 285<br />15.2 交易系统的链路优化 291<br />15.3 对账系统的设计 302<br />15.3.1 对账系统概述 302<br />15.3.2 对账需求分析 304<br />15.3.3 对账流程和规则设计 305<br />15.3.4 对账系统实现说明 311<br />15.4 本章小结 312<br />扩展篇<br />第16章 全链路性能压测 314<br />16.1 全链路性能压测的背景与<br /> 价值 314<br />16.2 端到端全链路监控分析 315<br />16.2.1 APM技术 316<br />16.2.2 Apache Skywalking 316<br />16.3 线上流量复制与染色 318<br />16.3.1 流量复制 318<br />16.3.2 流量复制工具 318<br />16.3.3 流量染色 321<br />16.4 全链路压测的数据安全与<br /> 隔离 321<br />16.4.1 数据隔离 322<br />16.4.2 影子库与影子表 322<br />16.4.3 ShardingSphere的影子库<br /> 功能 323<br />16.5 全链路压测下相关系统的<br /> 改造 324<br />16.5.1 业务系统的改造 324<br />16.5.2 消息队列的改造 326<br />16.5.3 外调服务的挡板功能 326<br />16.5.4 缓存中间件的改造 327<br />16.6 全链路压测的行业案例 328<br />16.6.1 滴滴出行的全链路压测 328<br />16.6.2 美团全链路压测自动化<br /> 实践 329<br />16.6.3 饿了么全链路压测平台 331<br />16.7 本章小结 331<br />第17章 云原生技术为性能带来的<br /> 机遇与变革 333<br />17.1 云原生弹性的实现原理 334<br />17.1.1 Kubernetes的资源类型 334<br />17.1.2 Kubernetes的资源管理和<br /> 调度 339<br />17.1.3 Kubernetes的资源动态<br /> 调整能力 342<br />17.1.4 Kubernetes的资源碎片<br /> 问题 345<br />17.2 云原生的可观测性 346<br />17.2.1 可观测性与传统监控的<br /> 区别 347<br />17.2.2 可观测性的维度 349<br />17.3 云原生要解决的性能问题、<br /> 带来的挑战及应对 353<br />17.3.1 云原生解决了哪些性能<br /> 问题 353<br />17.3.2 云原生带来了哪些新的<br /> 挑战 354<br />17.3.3 如何应对云原生带来的<br /> 挑战 355<br />17.4 本章小结 356<br />
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/1/27 13:32:55