本書的內容主要包含以下幾部分:1) 架構設計基礎,包括架構設計相關概念、歷史、原則、基本方法,讓架構設計不再神秘;2) 架構設計流程,通過一個虛擬的案例,描述了一個通用的架構設計流程,讓架構設計不再依賴天才的創(chuàng)作,而是有章可循;3) 架構設計專題:包括高性能架構設計、高可用架構設計、可擴展架構設計,這些模式可以直接參考和應用;4) 架構設計實戰(zhàn),包括重構、開源方案引入、架構發(fā)展路徑、互聯(lián)網架構模板等
阿里巴巴資深技術專家專注于Java、Linux、MySQL、開源技術、系統(tǒng)分析、架構設計,熱愛技術,CSDN社區(qū)之星,CSDN博客認證專家,UC資深軟件工程師
目錄
第1部分 概念和基礎
第1章 架構基礎
1.1 “架構”到底指什么
1.1.1 系統(tǒng)與子系統(tǒng)
1.1.2 模塊與組件
1.1.3 框架與架構
1.1.4 重新定義架構
1.2 架構設計的目的
1.2.1 架構設計的誤區(qū)
1.2.2 以史為鑒
1.2.3 架構設計的真正目的
1.3 復雜度來源
1.3.1 高性能
1.3.2 高可用
1.3.3 可擴展性
1.3.4 低成本
1.3.5 安全
1.3.6 規(guī)模
1.4 本章小結
第2章 架構設計原則
2.1 合適原則
2.2 簡單原則
2.3 演化原則
2.4 本章小結
第3章 架構設計流程
3.1 有的放矢—識別復雜度
3.2 按圖索驥—設計備選方案
3.3 深思熟慮—評估和選擇備選方案
3.3.1 業(yè)務背景
3.3.2 備選方案設計
3.3.3 備選方案360度環(huán)評
3.4 精雕細琢—詳細方案設計
3.5 本章小結
第2部分 高性能架構模式
第4章 存儲高性能
4.1 關系數(shù)據(jù)庫
4.1.1 讀寫分離
4.1.2 分庫分表
4.1.3 實現(xiàn)方法
4.2 NoSQL
4.2.1 K-V存儲
4.2.2 文檔數(shù)據(jù)庫
4.2.3 列式數(shù)據(jù)庫
4.2.4 全文搜索引擎
4.3 緩存
4.3.1 緩存穿透
4.3.2 緩存雪崩
4.3.3 緩存熱點
4.4 本章小結
第5章 計算高性能
5.1 單服務器高性能
5.1.1 PPC
5.1.2 prefork
5.1.3 TPC
5.1.4 prethread
5.1.5 Reactor
5.1.6 Proactor
5.2 集群高性能
5.2.1 負載均衡分類
5.2.2 負載均衡架構
5.2.3 負載均衡的算法
5.3 本章小結
第3部分 高可用架構模式
第6章 CAP
6.1 CAP理論
6.1.1 一致性(Consistency)
6.1.2 可用性
6.1.3 分區(qū)容忍性(Partition Tolerance)
6.2 CAP應用
6.2.1 CP—Consistency/Partition Tolerance
6.2.2 AP—Availability/Partition Tolerance
6.3 CAP細節(jié)
6.4 ACID、BASE
6.4.1 ACID
6.4.2 BASE
6.5 本章小結
第7章 FMEA
7.1 FMEA介紹
7.2 FMEA方法
7.3 FMEA實戰(zhàn)
7.4 本章小結
第8章 存儲高可用
8.1 主備復制
8.1.1 基本實現(xiàn)
8.1.2 優(yōu)缺點分析
8.2 主從復制
8.2.1 基本實現(xiàn)
8.2.2 優(yōu)缺點分析
8.3 主備倒換與主從倒換
8.3.1 設計關鍵
8.3.2 常見架構
8.4 主主復制
8.5 數(shù)據(jù)集群
8.5.1 數(shù)據(jù)集中集群
8.5.2 數(shù)據(jù)分散集群
8.5.3 分布式事務算法
8.5.4 分布式一致性算法
8.6 數(shù)據(jù)分區(qū)
8.6.1 數(shù)據(jù)量
8.6.2 分區(qū)規(guī)則
8.6.3 復制規(guī)則
8.7 本章小結
第9章 計算高可用
9.1 主備
9.2 主從
9.3 對稱集群
9.4 非對稱集群
9.5 本章小結
第10章 業(yè)務高可用
10.1 異地多活
10.1.1 異地多活架構
10.1.2 異地多活設計技巧
10.1.3 異地多活設計步驟
10.2 接口級的故障應對方案
10.2.1 降級
10.2.2 熔斷
10.2.3 限流
10.2.4 排隊
10.3 本章小結
第4部分 可擴展架構模式
第11章 可擴展模式
11.1 可擴展概述
11.2 可擴展的基本思想
11.3 可擴展方式
11.4 本章小結
第12章 分層架構
12.1 分層架構類型
12.2 分層架構詳解
12.3 本章小結
第13章 SOA架構
13.1 SOA歷史
13.2 SOA詳解
13.3 本章小結
第14章 微服務
14.1 微服務歷史
14.2 微服務與SOA的關系
14.3 微服務的陷阱
14.4 微服務最佳實踐
14.4.1 服務粒度
14.4.2 拆分方法
14.4.3 基礎設施
14.5 本章小結
第15章 微內核架構
15.1 基本概念
15.2 設計關鍵點
15.3 OSGi架構簡析
15.4 規(guī)則引擎架構簡析
15.5 本章小結
第5部分 架構實戰(zhàn)
第16章 消息隊列設計實戰(zhàn)
16.1 需求
16.2 設計流程
16.2.1 識別復雜度
16.2.2 設計備選方案
16.2.3 評估和選擇備選方案
16.2.4 細化方案
16.3 本章小結
第17章 互聯(lián)網架構演進
17.1 技術演進
17.1.1 技術演進的動力
17.1.2 淘寶
17.1.3 手機QQ
17.1.4 微信
17.2 技術演進的模式
17.3 互聯(lián)網業(yè)務發(fā)展
17.3.1 業(yè)務復雜性
17.3.2 用戶規(guī)模
17.3.3 量變到質變
17.4 本章小結
第18章 互聯(lián)網架構模板
18.1 總體結構
18.2 存儲層技術
18.2.1 SQL
18.2.2 NoSQL
18.2.3 小文件存儲
18.2.4 大文件存儲
18.3 開發(fā)層技術
18.3.1 開發(fā)框架
18.3.2 Web服務器
18.3.3 容器
18.4 服務層技術
18.4.1 配置中心
18.4.2 服務中心
18.4.3 消息隊列
18.5 網絡層技術
18.5.1 負載均衡
18.5.2 CDN
18.5.3 多機房
18.5.4 多中心
18.6 用戶層技術
18.6.1 用戶管理
18.6.2 消息推送
18.6.3 存儲云與圖片云
18.7 業(yè)務層技術
18.8 平臺技術
18.8.1 運維平臺
18.8.2 測試平臺
18.8.3 數(shù)據(jù)平臺
18.8.4 管理平臺
18.9 本章小結
第19章 架構重構
19.1 有的放矢
19.2 合縱連橫
19.2.1 合縱
19.2.2 連橫
19.3 運籌帷幄
19.4 文武雙全—項目管理+技術能力
19.5 本章小結
第20章 開源系統(tǒng)
20.1 選:如何選擇一個開源項目
20.1.1 聚焦是否滿足業(yè)務
20.1.2 聚焦是否成熟
20.1.3 聚焦運維能力
20.2 用:如何使用開源方案
20.2.1 深入研究,仔細測試
20.2.2 小心應用,灰度發(fā)布
20.2.3 做好應急,以防萬一
20.3 改:如何基于開源項目做二次開發(fā)
20.3.1 保持純潔,加以包裝
20.3.2 發(fā)明你要的輪子
20.4 本章小結