描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111767244
性能的重要性越来越高,但是要想真正实现高性能,必须具有架构思维,从多个层面进行设计和优化。
在AI时代,具有性能 架构这种综合性能力的技术人将成为企业中的高薪者。
本书以方法论为基础,站在架构层面,以网络、通信、客户端、单服务器、数据库为优化方向,深入解读软件全栈优化解决方案,内含4大主流产品优化案例。可以帮助你成为企业中的高端人才。
这是一本从点、线、面、体4个维度深度解读分布式系统性能优化方法的专业工具书,更是一套全栈性能优化解决方案。其中,“点”指的是代码中的单个语句或函数,“线”指的是代码中的执行路径,“面”则上升到模块、子系统级别,“体”则指的是整个系统。4个维度对应4个不同的优化层次,只有这4个维度配合,才可以真正实现分布式系统的整体性优化。
全书融合了5位长期(最长有近30年工作经验)从事软件开发及优化工作的一线专家的实践经验和深刻理解,不仅从理论层面深入解读了性能优化的本质,还从软件开发整体流程的角度构建性能优化体系和评估策略。全书本着“没有jue对的好设计,只有适合的设计”的理念展开介绍,不仅提供可落地的技巧,还直指本质,让读者知其然并知其所以然,从而设计出适合自己的性能优化方案。
本书共分为17章。
第1~4章 主要介绍作者对性能优化的理解以及性能优化体系及评测方法,这部分的目的是帮读者形成性能优化方法论,其中包括架构的本质、性能优化的本质、性能优化策略、性能优化4个维度、影响性能的因素、性能测试工具、性能测试方法和流程等重点内容。
第5~9章 对网络、通信、客户端、单服务实体、数据库这5个性能约束特点进行深度剖析,并给出具体的优化方法与策略。
第10章和第11章分别对缓存系统、消息队列在性能优化中的应用进行解读,这两个是实现高性能的途径,也是研发人员必须掌握的技巧。
第12~15章通过对智能音箱、网上商城、营销红包、交易系统4个典型案例性能设计与优化的全面解读,帮读者学以致用,并更深刻理解性能优化的原理。
第16章和第17章分别介绍全链路观测或压测的具体实现方法与应用场景,以及云原生技术对性能的影响。
前 言
性能是软件非功能特性的基本面
性能是软件系统的一种质量属性,可以定义为“软件系统与其环境交互以获得价值和避免损失的程度”。性能就是在空间资源和时间资源有限的条件下,衡量软件系统正常工作的概率或程度。
狭义上讲,软件系统的性能优化指的是在尽可能少地占用系统资源的前提下,尽可能提高运行速度。
本书首先从性能优化的认知和方法论开始介绍,然后介绍如何建立性能测试与评估的体系。巴斯、克莱门茨和凯兹曼在《软件架构实践》一书中提到,性能是指软件系统满足时间需求的能力。相较国外性能方面的经典著作,本书的重点放在软件系统层面,如对网络、通信、客户端、单服务实体、数据库等方面的性能约束特点进行阐述,提出具体的优化方法与策略,并深入剖析缓存系统、消息队列在性能优化中的应用。
本书还通过具体的实践案例(如智能音箱、商城、营销红包、交易系统等)介绍各种性能设计与优化方法的应用,并解读全链路观测和压测的具体实现方法与应用场景,最后介绍云原生技术对性能的影响。
本书提出性能优化的点、线、面、体方法。其中,“点”指的是代码中的单个语句或函数,可以通过代码级别的优化来提升性能;“线”指的是代码中的执行路径,可以通过对算法和数据结构的优化来提升性能;“面”则上升到模块、子系统级别;“体”则指的是整个系统,可以通过整体性优化来提升性能。
笔者认为,性能是软件非功能特性的基本面。软件性能与稳定性、容量、可用性、扩展性、成本都存在一定的关系。性能低下,系统会被拖慢,服务会堵塞,此时稳定性是一个问题。同时还容易出现级联故障,可用性本身也会受影响。另外,性能与成本、扩展性的关系尤其大。我们知道,对于无状态服务,可以通过添加服务节点的方式来实现持续扩展以满足业务需求。但是,每一个节点都会有成本。通过对设计方案和代码的优化,需要扩展的节点数量可能大大减少,从而降低成本。单节点的容量会大幅度提升。
回到实际工作场景,如高管看报表场景,虽然此时容量低,并发低,用户量很少,但是必须高性能,需要在1s内打开页面并完成渲染,同时要求数据有足够高的准确性。而商品秒杀场景,用户量巨大,需要确保不超卖(数据准确性控制),系统能良好地提供服务(可用性)、快速响应用户,不能被拖垮(高性能 高稳定性)。
没有绝对的好设计,只有适合的设计,因此往往需要在设计上进行取舍。比如数据一致性和可用性之间的取舍:在分布式系统中,为了保证数据的一致性,在进行数据更新时需要等待所有副本都更新完成才能返回响应,这会影响系统的可用性。为了提高系统的可用性,虽然可以采用异步复制的方式,即在更新主副本后,异步更新其他副本,但会牺牲数据的一致性。另外,还有数据一致性和性能之间的取舍、可用性和性能之间的取舍等。
一本书,一旦交付给读者,评判权就不在作者了,希望阅读本书的读者将自己对本书的意见或建议告诉我们。另外,书中存在错漏之处,在所难免,若有发现,也欢迎反馈。我们在公众号“技术琐话”放了一个页面“《性能之道:分布式系统全栈性能优化》读者反馈”,欢迎大家批评和指正。
祝阅读愉快!
现在市面上虽然不乏一些软件系统性能领域的经典之作,然而,大多数书对于分布式系统,尤其是互联网应用来说,内容还远远不够。《性能之道:分布式系统全栈性能优化》一书结合了系统性的方法论与丰富的具体实践案例,为软件性能优化提供了极具价值的参考。对于有追求的软件工程师来说,如果希望在实际工作中实现更高效的系统性能优化,这本书无疑是一本不可或缺的案头手册!
——清华大学软件学院 长聘副教授 博士生导师 高跃
在当今这个分布式系统盛行的时代,性能优化已成为每个技术从业者必须面对的关键课题。《性能之道:分布式系统全栈性能优化》一书,由老友秦金卫和其他一众业界资深专家联手打造。几位老师将自己在淘宝电商、百度音箱、商业银行等领域多年的性能优化经验倾囊相授,从认知到实践,再到具体案例,系统地阐述了分布式系统性能优化的方方面面。本书提出的“点、线、面、体”优化方法论既有深度又富有启发性,能帮助读者建立起完整的性能优化思维框架。全书涵盖网络、通信、前端、后端、数据库等技术栈的性能优化策略,并通过智能音箱、电商平台等真实案例加深读者对相关知识的理解。对于想要提升系统性能、降低运营成本的技术人员来说,这是一本难得的实战指南。
——听云前总裁、某创业公司联合创始人 赵宇辰博士
AI 时代已经到来,我们还需要学习软件架构吗?还需要掌握性能优化技术吗?这或许是当下许多开发者心中的疑问。然而,事实证明,从 AI 编程中受益最多的,正是那些具备架构思维和高性能系统设计经验的资深程序员与架构师。随着编程门槛的不断降低,拥有软件架构设计能力和高性能系统设计经验的工程师,将在未来相当长的一段时间里成为更加稀缺的核心人才。
作为一名曾主导多个十亿级用户系统架构的技术负责人,我强烈建议大家在编程初期就对“性能”这一概念建立明确的认识。本书无疑是一本全面的入门宝典,其作者都是我非常熟悉的国内头部架构专家,他们皆拥有丰富的平台设计经验。我相信这本书能够为大家呈现一份深入而全面的性能设计与优化指南。
——融云联合创始人 & 前 CTO 杨攀
在分布式系统的世界里,性能优化是一项复杂而精妙的艺术,它要求我们对系统有深刻理解,精心打磨。《性能之道》这本书,由一群在性能领域有着丰富实战经验的专家共同撰写,他们将多年的经验和智慧凝练于字里行间。
书中不仅提供了性能优化的理论基础和方法论,还深入探讨了从网络、通信、客户端、服务端到数据库等各个层面的性能瓶颈和优化策略。更难能可贵的是,作者们通过实际案例,如智能音箱、商城系统等,展示了如何在真实世界中应用这些优化技术,使理论与实践相结合。
对于任何希望构建高性能分布式系统的架构师和工程师来说,这本书都是不可多得的资源。它不仅能够增强你对系统性能的洞察力,还能指导你在设计和开发中做出更明智的决策。性能优化需要孜孜以求,更需要取舍抉择,方能得窥大道,一路高歌向天涯。
——公众号“IT民工闲话”作者 史海峰
评论
还没有评论。