高性能架構之道:分佈式、並發編程、數據庫調優、緩存設計、IO模型、前端優化、高可用(第2版)

易哥

  • 出版商: 電子工業
  • 出版日期: 2025-01-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 292
  • ISBN: 7121492458
  • ISBN-13: 9787121492457
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

相關主題

商品描述

本書是一本理論聯系實際的軟件架構設計指導書,旨在幫助讀者完成高性能軟件系統的架構設計工作。本書先闡明瞭高性能與架構的概念,然後從分流設計、服務並行設計、運算並發設計、輸入輸出設計、數據庫設計與優化、緩存設計、可靠性設計、應用保護設計、前端高性能設計等方面,全面介紹了高性能架構的理論和實踐知識。內容涵蓋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