注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡操作系統(tǒng)性能之道:分布式系統(tǒng)全棧性能優(yōu)化

性能之道:分布式系統(tǒng)全棧性能優(yōu)化

性能之道:分布式系統(tǒng)全棧性能優(yōu)化

定 價:¥109.00

作 者: 于君澤 曹洪偉 李偉山 秦金衛(wèi) 陳龍泉
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111767244 出版時間: 2024-12-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  這是一本從點、線、面、體4個維度深度解讀分布式系統(tǒng)性能優(yōu)化方法的專業(yè)工具書,更是一套全棧性能優(yōu)化解決方案。其中,“點”指的是代碼中的單個語句或函數(shù),“線”指的是代碼中的執(zhí)行路徑,“面”則上升到模塊、子系統(tǒng)級別,“體”則指的是整個系統(tǒng)。4個維度對應4個不同的優(yōu)化層次,只有這4個維度配合,才可以真正實現(xiàn)分布式系統(tǒng)的整體性優(yōu)化。全書融合了5位長期(最長有近30年工作經(jīng)驗)從事軟件開發(fā)及優(yōu)化工作的一線專家的實踐經(jīng)驗和深刻理解,不僅從理論層面深入解讀了性能優(yōu)化的本質(zhì),還從軟件開發(fā)整體流程的角度構(gòu)建性能優(yōu)化體系和評估策略。全書本著“沒有jue對的好設計,只有適合的設計”的理念展開介紹,不僅提供可落地的技巧,還直指本質(zhì),讓讀者知其然并知其所以然,從而設計出適合自己的性能優(yōu)化方案。本書共分為17章。第1~4章 主要介紹作者對性能優(yōu)化的理解以及性能優(yōu)化體系及評測方法,這部分的目的是幫讀者形成性能優(yōu)化方法論,其中包括架構(gòu)的本質(zhì)、性能優(yōu)化的本質(zhì)、性能優(yōu)化策略、性能優(yōu)化4個維度、影響性能的因素、性能測試工具、性能測試方法和流程等重點內(nèi)容。第5~9章 對網(wǎng)絡、通信、客戶端、單服務實體、數(shù)據(jù)庫這5個性能約束特點進行深度剖析,并給出具體的優(yōu)化方法與策略。第10章和第11章分別對緩存系統(tǒng)、消息隊列在性能優(yōu)化中的應用進行解讀,這兩個是實現(xiàn)高性能的途徑,也是研發(fā)人員必須掌握的技巧。第12~15章通過對智能音箱、網(wǎng)上商城、營銷紅包、交易系統(tǒng)4個典型案例性能設計與優(yōu)化的全面解讀,幫讀者學以致用,并更深刻理解性能優(yōu)化的原理。第16章和第17章分別介紹全鏈路觀測或壓測的具體實現(xiàn)方法與應用場景,以及云原生技術(shù)對性能的影響。

作者簡介

  于君澤 某大型互聯(lián)網(wǎng)公司前資深技術(shù)專家,在營銷、支付、財務等業(yè)務中臺方面有豐富的經(jīng)驗。暢銷書《深入分布式緩存》 《程序員的三門課》聯(lián)合作者,《持續(xù)架構(gòu)實踐》聯(lián)合譯者,公眾號“技術(shù)瑣話”主理人,獨立咨詢顧問。培訓和咨詢內(nèi)容包括數(shù)字化轉(zhuǎn)型、業(yè)務中臺、持續(xù)架構(gòu)實踐、內(nèi)建質(zhì)量、異地團隊搭建與發(fā)展等。曹洪偉 百度DuerOS原首席布道師,渡鴉原CTO,近30年產(chǎn)研經(jīng)驗,曾就職于美國高通等世界500強企業(yè)。創(chuàng)業(yè)項目有Mobile SFA、O2O應用商店和大學生發(fā)現(xiàn)式移動社交等。作為全棧工匠,對嵌入式系統(tǒng)runtime和應用框架有深刻理解,對驅(qū)動、OS、框架、App、前端、后臺、分布式系統(tǒng)、數(shù)據(jù)庫、大數(shù)據(jù)平臺、AI應用等均有涉足,對系統(tǒng)高并發(fā)、穩(wěn)定性、性能有體系性見解。目前任諾諦智能的首席架構(gòu)師,從事AI應用賦能及智能硬件的研發(fā)工作,工作之余維護公眾號及CSDN博客:wireless_com。李偉山 某知名人工智能公司前CTO,在數(shù)字化、人工智能、電商和金融等領域積累了豐富的平臺架構(gòu)設計經(jīng)驗,擅長組建產(chǎn)品研發(fā)團隊、塑造部門文化、提升團隊效能、打造學習型技術(shù)團隊。具備豐富的項目管理經(jīng)驗,精通IPD和敏捷開發(fā)流程管理。秦金衛(wèi)(網(wǎng)名kimmking) Apache Dubbo、ShardingSphere PMC,某集團前高級總監(jiān),某商業(yè)銀行研發(fā)中心前負責人。關注互聯(lián)網(wǎng)、電商、金融、支付、區(qū)塊鏈等領域,有近20年研發(fā)管理和架構(gòu)經(jīng)驗。《微服務架構(gòu)實戰(zhàn)》 《JVM核心技術(shù)32講》作者之一。近3年參與2家國有大行的分布式新核心項目,主導了分布式技術(shù)平臺、微服務、單元化等的設計與實現(xiàn)。目前作為獨立顧問從事金融行業(yè)數(shù)字化轉(zhuǎn)型、分布式微服務架構(gòu)、單元化架構(gòu)、開源治理與信創(chuàng)、非功能體系建設等相關的咨詢與培訓工作。陳龍泉 某大型互聯(lián)網(wǎng)公司技術(shù)專家,有十多年的大型互聯(lián)網(wǎng)項目開發(fā)經(jīng)驗。喜歡對技術(shù)進行深度思考,在性能優(yōu)化、線上故障排查、系統(tǒng)穩(wěn)定性建設等領域有豐富的實踐經(jīng)驗。

圖書目錄

目  錄
前言 性能是軟件非功能特性的基本面
認知篇
第1章 軟件架構(gòu)的時空觀 2
1.1 軟件架構(gòu)的時空定義 2
1.2 軟件架構(gòu)的分類 3
1.2.1 體系結(jié)構(gòu)上的分類 3
1.2.2 流程決策上的架構(gòu)分類 4
1.3 軟件架構(gòu)設計的原則與模式 5
1.3.1 軟件架構(gòu)設計的原則 5
1.3.2 軟件架構(gòu)設計的模式 6
1.4 軟件架構(gòu)的常用技術(shù)棧 8
1.5 本章小結(jié) 10
第2章 軟件性能的時空觀 11
2.1 軟件性能的宏觀多維模型 11
2.1.1 系統(tǒng)邊界 12
2.1.2 內(nèi)部結(jié)構(gòu) 13
2.1.3 外部效應 13
2.1.4 連接輸入 14
2.1.5 本節(jié)小結(jié) 14
2.2 軟件性能的一般含義 14
2.3 軟件性能的時空視角 15
2.3.1 系統(tǒng)性能的時間指標 16
2.3.2 軟件性能的空間指標 17
2.3.3 系統(tǒng)性能指標的時空關聯(lián) 18
2.3.4 常見的軟件性能指標 18
2.4 軟件性能的描述方式與工具 19
2.4.1 軟件性能的時間描述——
 時序圖 20
2.4.2 軟件性能的空間描述——
 組件描述直方圖 20
2.5 軟件的性能測試與監(jiān)控 20
2.5.1 性能測試 21
2.5.2 監(jiān)控性能拐點 21
2.5.3 容量規(guī)劃 22
2.6 本章小結(jié) 22
第3章 軟件性能優(yōu)化體系 23
3.1 軟件性能優(yōu)化策略 23
3.1.1 控制資源需求相關因素 24
3.1.2 管理資源相關因素 25
3.2 基于“點”的性能優(yōu)化 27
3.3 基于“線”的性能優(yōu)化 28
3.4 基于“面”的性能優(yōu)化 30
3.5 基于“體”的性能優(yōu)化 33
3.5.1 第一階段:常規(guī)優(yōu)化 34
3.5.2 第二階段:使用緩存與
 讀寫分離 34
3.5.3 第三階段:異步化與事務 35
3.6 性能優(yōu)化的PDCA 37
3.7 性能與其他非功能要素 38
3.8 本章小結(jié) 39
第4章 性能測試與評估 40
4.1 軟件性能的度量 40
4.1.1 性能測試的目的及意義 40
4.1.2 性能測試的度量指標 42
4.1.3 常見基礎設施性能指標 44
4.2 性能測試常用工具 45
4.2.1 性能測試場景 45
4.2.2 性能測試工具簡介 47
4.2.3 性能測試工具選擇 51
4.3 性能測試的方法、誤區(qū)和流程 53
4.3.1 性能測試的方法 53
4.3.2 性能測試的誤區(qū) 54
4.3.3 性能測試的流程 56
4.4 性能測試的結(jié)果分析與評估 61
4.4.1 施壓機器的指標觀測 62
4.4.2 軟件的指標分析 64
4.4.3 軟件的事后評估 69
4.5 本章小結(jié) 71
實踐篇
第5章 網(wǎng)絡性能 74
5.1 互聯(lián)網(wǎng)的性能問題 74
5.1.1 規(guī)模問題 75
5.1.2 距離瓶頸 75
5.2 內(nèi)容分發(fā)的方式與性能 75
5.2.1 集中托管 75
5.2.2 數(shù)據(jù)中心 76
5.2.3 分布式CDN 76
5.2.4 P2P網(wǎng)絡 77
5.3 CDN的選擇 77
5.4 應用層的網(wǎng)絡性能優(yōu)化 78
5.4.1 減少傳輸層開銷 79
5.4.2 尋找更好的路由 79
5.4.3 內(nèi)容預取 79
5.4.4 使用壓縮和增量編碼 79
5.4.5 邊緣組裝 80
5.4.6 邊緣計算 80
5.5 計算密集型應用的性能提升——
 高性能網(wǎng)絡 80
5.5.1 Inf?iniband網(wǎng)絡與RDMA 81
5.5.2 RDMA的關鍵特性 82
5.5.3 RDMA的上層接口 83
5.5.4 RDMA的底層實現(xiàn) 85
5.5.5 RDMA的性能優(yōu)勢與
 主要應用場景 86
5.6 網(wǎng)絡性能觀測工具 86
5.6.1 網(wǎng)絡可觀測性建設 87
5.6.2 網(wǎng)絡分析工具 88
5.7 本章小結(jié) 89
第6章 通信性能 90
6.1 面向互聯(lián)網(wǎng)的軟件 90
6.1.1 網(wǎng)絡應用并非只是計算 90
6.1.2 計算中的通信視角 91
6.1.3 網(wǎng)絡應用的通信視角 92
6.2 通信協(xié)議的分層設計與優(yōu)化 94
6.2.1 通信協(xié)議的分層設計 94
6.2.2 通信協(xié)議的優(yōu)化 95
6.3 軟件通信中的數(shù)據(jù)組織 95
6.3.1 XML、JSON和
 Protocol Buffer 96
6.3.2 性能視角的數(shù)據(jù)包大小 96
6.4 軟件通信中的復用機制 97
6.5 軟件通信的糾錯處理 98
6.5.1 前向糾錯與重傳糾錯 98
6.5.2 重傳機制 99
6.6 軟件通信中的流量控制 100
6.6.1 反向壓力 100
6.6.2 減負載 100
6.6.3 熔斷 101
6.7 通信協(xié)議的優(yōu)化示例:基于
 HTTP的性能優(yōu)化 102
6.7.1 鏈路復用 102
6.7.2 數(shù)據(jù)壓縮 103
6.7.3 SSL加速 103
6.8 本章小結(jié) 103
第7章 客戶端性能/前端性能
 優(yōu)化 105
7.1 性能優(yōu)化指標 105
7.1.1 以用戶為中心的性能指標 106
7.1.2 三大核心指標 107
7.1.3 前端性能測量工具匯總 112
7.2 前端系統(tǒng)優(yōu)化 113
7.2.1 HTTP中的性能優(yōu)化 113
7.2.2 代碼壓縮 116
7.2.3 JavaScript中的性能優(yōu)化 117
7.2.4 Webpack優(yōu)化 121
7.2.5 Vue項目性能優(yōu)化 128
7.3 客戶端系統(tǒng)優(yōu)化 131
7.3.1 Flutter項目優(yōu)化 131
7.3.2 PC端QT項目優(yōu)化 138
7.3.3 客戶端性能監(jiān)控的思考 139
7.4 本章小結(jié) 140
第8章 單服務實體的性能優(yōu)化 141
8.1 單服務實體性能問題定位的
 簡單策略 141
8.1.1 度量指標 142
8.1.2 資源列表 142
8.1.3 功能模塊圖 143
8.1.4 度量方法 143
8.1.5 軟件資源 143
8.1.6 性能定位的簡單策略 144
8.2 操作系統(tǒng)的配置優(yōu)化 144
8.3 代碼性能的基礎保障——
 靜態(tài)分析 146
8.4 API的性能約定 147
8.4.1 面向API的性能分類 147
8.4.2 API的性能約定 149
8.5 資源池的應用 151
8.5.1 連接池 152
8.5.2 線程池 155
8.5.3 內(nèi)存池 156
8.6 本章小結(jié) 157
第9章 數(shù)據(jù)庫性能 158
9.1 從數(shù)據(jù)庫技術(shù)發(fā)展看性能問題 158
9.1.1 數(shù)據(jù)庫對系統(tǒng)性能的影響 158
9.1.2 數(shù)據(jù)庫技術(shù)的整體發(fā)展 159
9.1.3 關系數(shù)據(jù)庫的諸多挑戰(zhàn) 159
9.1.4 NoSQL運動的百花齊放 164
9.1.5 分布式演進的步步為營 164
9.1.6 分布式數(shù)據(jù)庫的風起云涌 168
9.2 面向分布式應用的數(shù)據(jù)庫
 性能分析 170
9.2.1 制定數(shù)據(jù)庫性能規(guī)劃目標 170
9.2.2 通過壓測了解數(shù)據(jù)庫性能 170
9.2.3 分析應用數(shù)據(jù)庫性能瓶頸 171
9.2.4 數(shù)據(jù)庫性能優(yōu)化一般方法 171
9.3 MySQL的常見優(yōu)化方法 174
9.3.1 操作系統(tǒng)參數(shù)優(yōu)化 174
9.3.2 數(shù)據(jù)庫配置優(yōu)化 175
9.3.3 數(shù)據(jù)庫設計優(yōu)化 178
9.3.4 SQL查詢優(yōu)化 184
9.3.5 SQL寫入優(yōu)化 187
9.3.6 應用連接池優(yōu)化 187
9.4 本章小結(jié) 189
第10章 緩存的應用 190
10.1 無處不在的緩存 191
10.2 客戶端緩存 192
10.2.1 頁面緩存 192
10.2.2 瀏覽器緩存 194
10.2.3 App上的緩存 195
10.3 網(wǎng)絡端緩存 196
10.3.1 Web代理緩存 196
10.3.2 邊緣緩存 197
10.4 服務端緩存 198
10.4.1 平臺級緩存 198
10.4.2 分布式緩存的應用 198
10.5 數(shù)據(jù)庫緩存 199
10.5.1 數(shù)據(jù)庫緩存:MySQL的
 查詢緩存 199
10.5.2 檢驗Query Cache的
 合理性 200
10.5.3 數(shù)據(jù)庫緩存:InnoDB的
 緩存性能 200
10.6 營銷場景案例:優(yōu)惠券
?。t包)發(fā)放與核銷 202
10.7 電商案例:應用多級緩存
 模式支撐海量讀服務 204
10.7.1 多級緩存介紹 204
10.7.2 如何緩存數(shù)據(jù) 205
10.8 本章小結(jié) 208
第11章 消息隊列 210
11.1 消息隊列概述 210
11.2 消息隊列使用場景 211
11.2.1 削峰填谷 211
11.2.2 應用解耦 213
11.2.3 異步處理 213
11.2.4 分布式事務一致性 214
11.2.5 大數(shù)據(jù)分析 218
11.3 消息中間件的選型 219
11.3.1 RocketMQ 221
11.3.2 RabbitMQ 222
11.3.3 ActiveMQ 223
11.3.4 Kafka 223
11.4 本章小結(jié) 224
案例篇
第12章 小度音箱的性能優(yōu)化 228
12.1 智能音箱的組成和系統(tǒng)架構(gòu) 228
12.1.1 對話式AI操作系統(tǒng)——
 DuerOS 229
12.1.2 智能音箱的典型工作
 流程 231
12.2 小度音箱的性能分析 232
12.2.1 核心的性能指標 232
12.2.2 核心指標的度量 232
12.3 小度音箱系統(tǒng)的網(wǎng)絡拓撲
 優(yōu)化 234
12.4 小度音箱系統(tǒng)的應用協(xié)議
 優(yōu)化 234
12.5 小度音箱系統(tǒng)的業(yè)務邏輯
 優(yōu)化 235
12.5.1 智能音箱業(yè)務中的
 延時分布 236
12.5.2 預測預取 236
12.5.3 連接池的應用 237
12.6 小度音箱系統(tǒng)的緩存應用 238
12.7 本章小結(jié) 238
第13章 網(wǎng)上商城的性能優(yōu)化 239
13.1 網(wǎng)上商城的架構(gòu)與業(yè)務流程 239
13.1.1 核心模塊 242
13.1.2 核心業(yè)務 242
13.2 商城系統(tǒng)的性能指標 244
13.3 網(wǎng)上商城核心模塊的性能
 優(yōu)化 245
13.3.1 商品管理 245
13.3.2 用戶管理 248
13.3.3 購物車管理 251
13.3.4 訂單管理 254
13.3.5 秒殺系統(tǒng)設計 257
13.4 本章小結(jié) 274
第14章 典型并發(fā)場景——
 營銷紅包的性能優(yōu)化 275
14.1 類支付寶紅包系統(tǒng)的業(yè)務流
 和挑戰(zhàn) 275
14.1.1 類支付寶紅包業(yè)務動作
 和潛在技術(shù)挑戰(zhàn)分析 275
14.1.2 討論方案:大商戶紅包
 熱點問題 276
14.1.3 多級緩存策略 277
14.1.4 討論方案:單筆支付咨詢
 多紅包問題 277
14.2 類微信紅包系統(tǒng)的業(yè)務流和
 挑戰(zhàn) 278
14.2.1 類微信紅包業(yè)務動作
 分析 278
14.2.2 異步化 278
14.2.3 SET化:分拆資源 279
14.2.4 無并發(fā)寫的實踐 279
14.3 預加載和考慮備案 280
14.4 性能優(yōu)化策略與案例的關系 281
14.5 本章小結(jié) 282
第15章 支付系統(tǒng)/核心交易
 系統(tǒng)的性能優(yōu)化 283
15.1 支付系統(tǒng)/核心交易系統(tǒng)的
 架構(gòu)特點 284
15.1.1 支付系統(tǒng)的作用 284
15.1.2 支付系統(tǒng)的架構(gòu) 285
15.2 交易系統(tǒng)的鏈路優(yōu)化 291
15.3 對賬系統(tǒng)的設計 302
15.3.1 對賬系統(tǒng)概述 302
15.3.2 對賬需求分析 304
15.3.3 對賬流程和規(guī)則設計 305
15.3.4 對賬系統(tǒng)實現(xiàn)說明 311
15.4 本章小結(jié) 312
擴展篇
第16章 全鏈路性能壓測 314
16.1 全鏈路性能壓測的背景與
 價值 314
16.2 端到端全鏈路監(jiān)控分析 315
16.2.1 APM技術(shù) 316
16.2.2 Apache Skywalking 316
16.3 線上流量復制與染色 318
16.3.1 流量復制 318
16.3.2 流量復制工具 318
16.3.3 流量染色 321
16.4 全鏈路壓測的數(shù)據(jù)安全與
 隔離 321
16.4.1 數(shù)據(jù)隔離 322
16.4.2 影子庫與影子表 322
16.4.3 ShardingSphere的影子庫
 功能 323
16.5 全鏈路壓測下相關系統(tǒng)的
 改造 324
16.5.1 業(yè)務系統(tǒng)的改造 324
16.5.2 消息隊列的改造 326
16.5.3 外調(diào)服務的擋板功能 326
16.5.4 緩存中間件的改造 327
16.6 全鏈路壓測的行業(yè)案例 328
16.6.1 滴滴出行的全鏈路壓測 328
16.6.2 美團全鏈路壓測自動化
 實踐 329
16.6.3 餓了么全鏈路壓測平臺 331
16.7 本章小結(jié) 331
第17章 云原生技術(shù)為性能帶來的
 機遇與變革 333
17.1 云原生彈性的實現(xiàn)原理 334
17.1.1 Kubernetes的資源類型 334
17.1.2 Kubernetes的資源管理和
 調(diào)度 339
17.1.3 Kubernetes的資源動態(tài)
 調(diào)整能力 342
17.1.4 Kubernetes的資源碎片
 問題 345
17.2 云原生的可觀測性 346
17.2.1 可觀測性與傳統(tǒng)監(jiān)控的
 區(qū)別 347
17.2.2 可觀測性的維度 349
17.3 云原生要解決的性能問題、
 帶來的挑戰(zhàn)及應對 353
17.3.1 云原生解決了哪些性能
 問題 353
17.3.2 云原生帶來了哪些新的
 挑戰(zhàn) 354
17.3.3 如何應對云原生帶來的
 挑戰(zhàn) 355
17.4 本章小結(jié) 356

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號