《高性能架構之道》是電子工業出版社圖書,作者為易哥。是一本理論聯繫實際的軟體架構設計指導書,旨在幫助讀者完成高性能軟體系統的架構設計工作。書中涉及分散式、並發編程、資料庫調優、快取、IO、前端性能最佳化等方面的理論知識,並在理論知識的基礎上推導其實踐技巧。本書最後還運用書中知識完成了一個實際軟體項目的架構設計工作。本書適合軟體架構師、工程師、學生閱讀,以幫助其完善軟體開發知識體系和提升其軟體架構設計能力。
基本介紹
- 中文名:高性能架構之道
- 別名:高性能架構之道:分散式、並發編程、資料庫調優、快取設計、IO模型、前端最佳化、高可用
- 作者:易哥
- 類別:計算機 軟體開發
- 出版社:電子工業出版社
- 出版時間:2021年3月1日
- 頁數:292 頁
- 定價:89 元
- 開本:16 開
- ISBN:9787121404870
內容簡介,圖書目錄,作者簡介,
內容簡介
本書是一本理論聯繫實際的軟體架構設計指導書,旨在幫助讀者完成高性能軟體系統的架構設計工作。書中涉及分散式、並發編程、資料庫調優、快取、IO、前端性能最佳化等方面的理論知識,並在理論知識的基礎上推導其實踐技巧。本書最後還運用書中知識完成了一個實際軟體項目的架構設計工作。本書適合軟體架構師、工程師、學生閱讀,以幫助其完善軟體開發知識體系和提升其軟體架構設計能力。
圖書目錄
- 推薦序
- 前言
- 第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 反向代理
第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 輸入輸出模型總結
第6章 資料庫設計與最佳化
- 6.1 資料庫設計概述
- 6.2 關係型資料庫設計
- 6.2.1 設計範式介紹
- 第一範式
- 第二範式
- 第三範式
- BCNF
- 第四範式
- 第五範式
6.2.2 反範式設計
6.3 索引原理與最佳化
- 6.3.1 索引的原理
- Hash索引
- BTree索引
- 點陣圖索引
6.3.2 索引生效分析
6.3.3 索引的使用
- 計算與類型轉化引發的索引失效
- 聯合索引的失效
- 模糊匹配引發的索引失效
- 其他索引失效場景
6.3.4 索引的利弊
6.4 資料庫引擎
6.5 資料庫鎖
- 6.5.1 樂觀鎖
- 6.5.2 悲觀鎖
6.6 死鎖
6.7 事務
- 6.7.1 事務並發導致的問題
- 髒讀
- 不可重複讀
- 幻讀
6.7.2 事務隔離級別
- 讀未提交
- 讀已提交
- 可重複讀
- 串列化
- 隔離級別總結
6.7.3 自建事務
6.8 巨量數據的最佳化
- 6.8.1 表分區
- 6.8.2 分庫分表
- 6.8.3 讀寫分離
- 主從複製的實現方案
- 主從複製的延遲問題
6.9 非傳統資料庫
- 6.9.1 記憶體資料庫
- 6.9.2 列存儲資料庫
- 6.9.3 面向對象資料庫
- 6.9.4 文檔資料庫
- 6.9.5 圖資料庫
6.10 資料庫中間件
第7章 快取設計
- 7.1 快取的收益
- 7.2 快取的鍵與值
- 7.2.1 快取的鍵
- 7.2.2 快取的值
7.3 快取的更新機制
- 7.3.1 時效性更新機制
- 7.3.2 主動更新機制
- Cache Aside機制
- Read/Write Through機制
- Write Behind機制
7.4 快取的清理機制
- 7.4.1 時效式清理
- 7.4.2 數目閾值式清理
- FIFO
- LRU
- 開發實踐
7.4.3 非強引用式清理
7.4.4 清理策略使用實踐
7.5 快取的風險點
- 7.5.1 快取穿透
- 7.5.2 快取雪崩
- 7.5.3 快取擊穿
- 7.5.4 快取預熱
7.6 快取的位置
- 7.6.1 客戶端快取
- 7.6.2 靜態快取
- 7.6.3 服務快取
- 7.6.4 資料庫快取
7.7 寫快取
- 7.7.1 寫快取的收益
- 7.7.2 寫快取實踐
第8章 可靠性設計
- 8.1 軟體可靠性概述
- 8.2 軟體可靠性指標
- 8.2.1 失效機率
- 8.2.2 失效強度
- 8.2.3 失效率
8.3 模組連線方式與可靠性
- 8.3.1 串聯繫統的可靠性
- 8.3.2 並聯繫統的可靠性
- 8.3.3 冗餘系統的可靠性
- 8.3.4 模組連線方式的可靠性討論
8.4 軟體失效模型
8.5 可靠性設計
- 8.5.1 消除單點依賴
- 8.5.2 化串聯為並聯
- 8.5.3 採用集群
第9章 套用保護
- 9.1 套用保護概述
- 9.2 隔離
- 9.3 限流
- 9.3.1 時間窗限流法
- 9.3.2 漏桶限流法
- 9.3.3 令牌限流法
9.4 降級
9.5 熔斷
9.6 恢復
第10章 前端高性能
- 10.1 前端工作分析
- 10.1.1 前端載入過程
- 10.1.2 前端性能分析
10.2 資源下載最佳化
- 10.2.1 資源壓縮
- 10.2.2 減少請求
- 資源合併
- 長連線長輪詢與推送
10.2.3 資源快取
10.3 頁面解析最佳化
- 10.3.1 順應解析流程
- 10.3.2 套用新型前端框架
10.4 懶載入
10.5 預操作
第11章 架構設計
- 11.1 軟體架構風格
- 11.1.1 管道過濾器架構風格
- 11.1.2 面向對象架構風格
- 11.1.3 基於組件的架構風格
- 11.1.4 事件驅動架構風格
- 11.1.5 分層架構風格
- 11.1.6 C/S架構風格
- 11.1.7 三層C/S架構風格
- 11.1.8 B/S架構風格
11.2 軟體生命周期
- 11.2.1 需求階段
- 11.2.2 模型設計
- 11.2.3 概要設計
- 11.2.4 詳細設計
- 11.2.5 質量指標設計
- 11.2.6 方案預研
- 11.2.7 軟體開發
第12章 高性能架構實踐
- 12.1 需求概述
- 12.2 許可權系統的相關理論
- 12.2.1 許可權模型
- 訪問矩陣
- 基於角色的訪問控制
- 兩種許可權模型之間的關係
12.2.2 訪問控制方式
12.3 模型設計
- 12.3.1 模型調研
- 12.3.2 模型套用
- 用戶、角色、許可權的處理
- “用戶-角色”關係
- “角色-許可權”關係
- RBAC各要素實現整理
- 控制方式設計
12.4 概要設計
12.5 數據層詳細設計
- 12.5.1 RBAC數據表的範式設計
- 12.5.2 RBAC數據表的反範式設計
- 12.5.3 RBAC數據表的最終設計
- 12.5.3 MatrixAuth管理類數據表設計
- 12.5.4 MatrixAuth的數據層結構
12.6 快取詳細設計
12.7 服務端詳細設計
- 12.7.1 數據源動態切換
- 12.7.2 數據冗餘的一致性保證
- 12.7.3 服務端的操作接口
12.8 客戶端詳細設計
- 12.8.1 可控角色的許可權驗證
- 12.8.2 自由角色的許可權驗證
- 12.8.3 用戶信息、角色關聯信息推送
12.9 MatrixAuth項目實踐總結
12.9.1 MatrixAuth的高性能設計
- 數據層(含快取)
- 服務端
- 客戶端
12.9.2 需求完成度分析
12.9.3 MatrixAuth的使用簡介
- 數據源配置
- MatrixAuthServer配置
- MatrixAuthClient配置
- 鑒權操作
作者簡介
易哥(筆名),畢業於浙江大學、山東大學,高級軟體系統架構師、網路工程師、資料庫工程師、軟體測試工程師、註冊電氣工程師。在校成績前1%,獲得國家獎學金兩次,一等獎學金四次,科技創新大賽一等獎三次,以及五四青年科學獎等。主要科研方向為機器學習、分散式算法、容錯算法在無線感測網路中的套用,相關論文獲得IEEE通信協會最佳論文獎。曾擔任網站技術部門負責人,具有豐富的網際網路開發經驗。先後設計和實現了眾多系統和平台,也是活躍的開源開發者。現專注軟體系統架構設計與後端開發,著有書籍《通用源碼閱讀指導書》《高性能架構之道》《分散式系統原理與工程實踐》等。