-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
架構設計2.0:大型分布式系統架構方法論與實踐 版權信息
- ISBN:9787121425073
- 條形碼:9787121425073 ; 978-7-121-42507-3
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
架構設計2.0:大型分布式系統架構方法論與實踐 本書特色
適讀人群 :本書適合工程師、架構師閱讀,也適合企業系統開發人員在內的軟件開發從業者閱讀。《軟件架構設計:大型網站技術架構與業務架構融合之道》《Java并發實現原理:JDK源碼剖析》作者,互聯網公司架構師。 內容豐富,系統化地闡述了構建大型分布式系統所需要的技術架構與業務架構方法論,并輔與詳盡的實踐案例剖析。 體系完整,從分布式架構的幾大核心問題入手,過渡到業務架構思維、需求分析、業務建模、領域驅動設計與微服務等,探討業務架構,*后通過眾多的業界實際案例來對理論有一個更為直觀的介紹。
架構設計2.0:大型分布式系統架構方法論與實踐 內容簡介
本書深刻總結了作者在大型互聯網公司長期的實戰經驗,系統闡述了構建大型分布式系統所需要的技術架構與業務架構方法論,并進行了詳盡的實踐剖析。全書分為三大部分:第1部分完整討論了分布式架構的幾大核心問題,包括高并發、高可靠、高可用、數據一致性(包括分布式事務、Paxos/Raft一致性算法)、跨城容災與異地多活、CAP理論;第2部分從業務架構思維、需求分析、業務建模、領域驅動設計與微服務等角度探討業務架構;第3部分是案例實戰,通過眾多的業界實際案例對理論有更為直觀的介紹。通過本書,讀者可以對構建大型分布式系統的方法論有全局的認識,對軟件架構的核心能力有深刻的理解,對個人的技術成長起到一定的借鑒作用,提升思維認知。 本書不僅適合工程師、架構師閱讀,也適合包括企業系統開發人員在內的軟件開發從業人員閱讀。
架構設計2.0:大型分布式系統架構方法論與實踐 目錄
第1部分 分布式架構
第1章 高并發 4
1.1 問題分類 4
1.1.1 側重于“高并發讀”的系統 4
1.1.2 側重于“高并發寫”的系統 6
1.1.3 同時側重于“高并發讀”和“高并發寫”的系統 7
1.2 高并發讀 8
1.2.1 策略1:動靜分離與CDN加速 8
1.2.2 策略2:加緩存 9
1.2.3 策略3:并發讀與Pipeline 10
1.2.4 策略4:批量讀 12
1.2.5 策略5:重寫輕讀 12
1.2.6 總結:讀寫分離(CQRS架構) 14
1.3 高并發寫 16
1.3.1 策略1:數據分片 16
1.3.2 策略2:任務分片 17
1.3.3 策略3:異步化與Pipeline 19
1.3.4 策略4:批量 26
1.3.5 策略5:串行化+多進程單線程+異步I/O 27
第2章 高可靠 29
2.1 容量評估與規劃 29
2.1.1 理論基礎:吞吐量、響應時間與并發數三者關系 29
2.1.2 容量規劃 31
2.1.3 單機*大QPS估算方法1: CPU密集型與I/O密集型的區分 32
2.1.4 單機*大QPS估算方法2:壓力測試 33
2.2 過載保護:限流與熔斷 35
2.2.1 限流的兩種限制維度 35
2.2.2 單機限流的算法 35
2.2.3 單機限流的實現 37
2.2.4 中央限流 40
2.2.5 熔斷 41
2.3 超時與重試 42
2.4 隔離 43
2.5 有損服務與降級 44
2.6 灰度發布、備份與回滾 45
2.7 監控體系與日志報警 47
第3章 分布式事務 50
3.1 隨處可見的分布式事務問題 51
3.1.1 緩存和數據庫的一致性問題 51
3.1.2 消息中間件和數據庫的一致性問題 51
3.1.3 兩個數據庫的一致性問題 51
3.1.4 服務和數據庫的一致性問題 51
3.1.5 兩個服務的一致性問題 52
3.1.6 兩個文件的一致性問題 52
3.2 分布式事務解決方案匯總 52
3.2.1 2PC 52
3.2.2 *終一致性:**種實現方案 56
3.2.3 *終一致性:第二種實現方案(基于事務消息) 59
3.2.4 TCC 61
3.2.5 事務狀態表+事務補償 63
3.2.6 同步雙寫(多寫)+異步對賬 64
3.2.7 妥協方案:弱一致性+基于狀態的事后補償 66
3.2.8 妥協方案:重試+回滾+報警+人工修復 68
3.2.9 阿里云Seata框架 68
3.2.10 總結 73
第4章 高可用 74
4.1 高可用架構的思維框架 74
4.1.1 如何實現故障探測 75
4.1.2 如何解決腦裂問題 75
4.1.3 如何做到數據一致性 76
4.1.4 如何做到對客戶端透明 76
4.1.5 如何解決高可用依賴的連環套問題 76
4.2 接入層高可用 78
4.2.1 DNS層高可用:廣域網負載均衡 79
4.2.2 接入網關高可用:局域網負載均衡 79
4.2.3 Nginx高可用 81
4.2.4 Tomcat高可用 81
4.3 業務邏輯層(微服務層)高可用 82
4.4 存儲層高可用 83
4.4.1 RedisCluster的高可用案例 83
4.4.2 HDFS的高可用案例 85
第5章 高可用:多副本一致性算法 89
5.1 高可用且強一致性到底有多難 89
5.1.1 Kafka的消息丟失問題 89
5.1.2 Kafka的消息錯亂問題 93
5.1.3 MySQL半同步復制數據不一致問題 94
5.2 Paxos算法解析 96
5.2.1 Paxos解決什么問題 96
5.2.2 復制狀態機 99
5.2.3 一個樸素而深刻的想法 101
5.2.4 Basic Paxos算法 102
5.2.5 Multi Paxos算法 105
5.3 Raft算法解析 108
5.3.1 為“可理解性”而設計 108
5.3.2 單點寫入 108
5.3.3 日志結構 109
5.3.4 階段1:Leader選舉 113
5.3.5 階段2:日志復制 115
5.3.6 階段3:恢復階段 116
5.3.7 安全性保證 116
5.4 Zab算法解析 119
5.4.1 復制狀態機與Primary-Backup System 119
5.4.2 zxid 121
5.4.3 “序”:亂序提交與順序提交 122
5.4.4 Leader選舉:FLE算法 124
5.4.5 正常階段:2階段提交 125
5.4.6 恢復階段 126
5.5 三種算法對比與工程實現 127
第6章 高可用:跨城容災與異地多活 129
6.1 跨城的關鍵物理約束:時延 129
6.2 多IDC無復制架構 130
6.2.1 單寫多讀架構 130
6.2.2 各IDC自治架構 132
6.3 同城同步復制,跨城異步復制:2地3中心 133
6.4 跨城同步復制:3地5中心 133
6.5 跨城異步復制 135
6.5.1 不能容忍數據不一致:實現部分的強一致 136
6.5.2 可以容忍數據不一致:事后修復 137
6.5.3 加快異步復制速度 137
6.6 單元化 138
6.6.1 到底什么是單元化 138
6.6.2 什么系統不能單元化 140
第7章 CAP理論 142
7.1 CAP理論的誤解 142
7.2 現實世界不存在“強一致性”(PACELC理論) 143
第2部分 業務架構
第8章 業務架構定義 148
8.1 各式各樣的方法論 148
8.2 什么不是業務架構 149
8.3 以終為始:業務架構到底解決哪些問題 150
第9章 深刻理解現實世界:識別“真正的”需求 153
9.1 探究問題的本源 153
9.2 系統化思維 154
9.3 信息傳播的遞減效應 155
9.4 主要矛盾與次要矛盾 156
9.5 產品手段與技術手段的權衡 156
第10章 深刻理解現實世界:從整體上去看待需求 158
10.1 利益相關者分析:看需求先看人 158
10.2 金字塔原理:不重不漏地拆解問題 160
10.3 需求的兩種表現形式:業務流程與業務規則 162
10.4 “業務”的閉環性 163
第11章 不同粒度的建模方法與原則 165
11.1 單個系統內部的建模方法與原則 165
11.1.1 建模的通用思維:搭積木 165
11.1.2 面向對象建模的基本步驟 167
11.2 問題空間 169
11.2.1 深刻理解專業名詞 169
11.2.2 重要信息“顯性化” 170
11.2.3 抽象 171
11.3 解決方案空間 174
11.3.1 重構 174
11.3.2 設計模式 175
11.3.3 面向對象的五大原則(SOLID原則) 178
11.4 跨系統、跨團隊的建模方法與原則 179
11.4.1 康威定律 179
11.4.2 領域的劃分:高內聚與低耦合 181
11.4.3 邊界思維:接口的設計比實現重要得多 182
11.4.4 多視角描述同一個架構:架構4+1/5+1視圖 184
第12章 常用架構模式 186
12.1 分層架構模式與“偽分層” 186
12.2 管道-過濾器架構模式 189
12.3 狀態機架構模式 190
12.4 業務切面/業務閉環架構模式 192
12.5 規則引擎 193
12.5.1 什么是規則 194
12.5.2 業務代碼如何抽象成一條條規則 194
12.5.3 規則描述語言DSL 196
12.5.4 規則引擎的兩種執行方式 197
12.6 工作流引擎 198
第13章 領域驅動設計 200
13.1 傳統開發模式:面向數據庫表的“面條式”代碼 200
13.2 DDD的基本概念 201
13.3 DDD的方法論 203
13.3.1 領域模型和數據模型的區別 203
13.3.2 基于DDD的分層架構 203
13.3.3 領域模型和數據模型如何映射 204
13.3.4 DDD中的讀寫分離模式 206
第14章 DDD的折中與微服務架構 207
14.1 軟件建模本身的困難 207
14.2 “無建模”帶來的各種問題 209
14.3 DDD的困難 210
14.4 折中后的DDD 211
14.4.1 宏觀層面:遵循子域、限界上下文、微服務三者的映射關系 211
14.4.2 微觀層面:不遵循DDD的方法論 212
14.5 三個不同層次的讀寫分離架構 212
第3部分 案例實戰
第15章 基礎架構案例實戰 216
15.1 分布式鎖 216
15.1.1 分布式鎖的使用場景 216
15.1.2 分布式鎖的常用實現方式與問題 216
15.1.3 用串行化代替分布式鎖 217
15.2 服務注冊與服務發現中心 219
15.2.1 服務注冊與服務發現中心的基本原理 219
15.2.2 服務路由表的數據延遲與解決方案 220
15.2.3 服務注冊中心應該是AP系統,還是CP系統 221
15.2.4 配置中心應該是AP系統,還是CP系統 222
15.3 分布式ID生成系統 222
15.3.1 全局唯一,趨勢遞增 223
15.3.2 全局唯一,單調遞增 225
15.3.3 全局唯一,連續遞增 229
第16章 C端業務系統案例實戰 230
16.1 電商庫存系統 230
16.1.1 業務背景與需求分析 230
16.1.2 高并發讀與寫:中央緩存與本地緩存的權衡 234
16.1.3 數據一致性:冪等問題 238
16.1.4 數據一致性:扣減多個商品的原子性問題 239
16.1.5 數據一致性:并發更新的鎖問題 239
16.1.6 數據一致性:流水和庫存表如何對賬 240
16.1.7 業務架構進階之一:一個庫存模型同時支持自營與平臺
兩個商業模式 241
16.1.8 業務架構進階之二:分區售賣問題 243
16.1.9 業務架構進階之三:供應鏈庫存(不光要管售賣,還要管采購) 244
16.1.10 業務架構進階之四:以“單據”為中心的庫存對賬 245
16.1.11 業務架構進階之五:先采后賣,還是先賣后采 247
16.2 秒殺系統 249
16.2.1 需求分析 249
16.2.2 異步秒殺與同步秒殺 250
16.2.3 同步秒殺系統的設計 252
16.2.4 防刷問題 253
16.2.5 名額歸還問題 254
16.2.6 同步與異步的相結合 254
16.2.7 層層限流,保護*終的核心系統 255
16.3 Feeds流 255
16.3.1 需求分析 255
16.3.2 無限長列表的實現 256
16.3.3 寫擴散和讀擴散的相結合 258
16.3.4 評論的實現 259
第17章 B端業務系統案例實戰 261
17.1 規則引擎平臺 261
17.1.1 規則引擎的典型應用場景 261
17.1.2 四種技術選型 263
17.1.3 規則的存儲與版本管理 265
17.1.4 可視化規則編輯 266
17.1.5 特征庫、動作庫管理 268
17.1.6 特征數據庫 269
17.1.7 總結 270
17.2 工作流引擎平臺 271
17.2.1 沒有工作流引擎,如何做業務開發 271
17.2.2 工作流引擎的基本思路 273
17.2.3 工作流引擎與微服務編排引擎、分布式事務的Saga模式的區別與
聯系 274
17.2.4 BPMN標準 278
17.2.5 工作流引擎的技術選型與Activiti介紹 281
17.2.6 對Activiti的裁剪 283
17.2.7 Activiti的性能問題與對Activiti的擴展 284
17.2.8 工作流引擎與微服務/DDD方法論的沖突 285
17.3 權限管理系統 286
17.3.1 權限管理系統的由來 286
17.3.2 權限如何抽象:權限Code 287
17.3.3 權限的進一步抽象 288
17.3.4 權限模型 289
17.3.5 權限系統的實現方式 289
17.3.6 API權限與微服務鑒權 292
第18章 大數據與中臺案例實戰 295
18.1 嚴格區分在線業務邏輯與離線業務邏輯 295
18.2 警惕后臺離線任務 298
18.3 合理利用大數據交互式查詢引擎 300
18.4 中臺 301
18.4.1 什么不是中臺 301
18.4.2 業務中臺 303
18.4.3 數據中臺 304
18.4.4 中臺和組織架構 307
架構設計2.0:大型分布式系統架構方法論與實踐 作者簡介
余春龍,中科院軟件所碩士畢業,先后在多家一線互聯網公司任架構師,歷經各種大規模研發團隊的架構實踐,在海量高并發高可用架構、業務建模、領域驅動設計、技術規劃與技術管理等方面具備豐富的工程經驗,形成了自己完整的一套架構方法論。
- >
小考拉的故事-套裝共3冊
- >
煙與鏡
- >
羅庸西南聯大授課錄
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
史學評論
- >
羅曼·羅蘭讀書隨筆-精裝
- >
我與地壇
- >
莉莉和章魚