-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 版權(quán)信息
- ISBN:9787121356032
- 條形碼:9787121356032 ; 978-7-121-35603-2
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 本書特色
揭秘互聯(lián)網(wǎng)高并發(fā)、高可用、可擴(kuò)展架構(gòu)核心技術(shù) 囊括計(jì)算機(jī)功底、技術(shù)架構(gòu)、業(yè)務(wù)架構(gòu)、職業(yè)發(fā)展四大維度,建立系統(tǒng)的架構(gòu)設(shè)計(jì)方法論 詮釋技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)的融合方法 軟件架構(gòu)設(shè)計(jì)的本質(zhì),是對問題域空間反復(fù)運(yùn)用演繹、抽象、歸納等方法,進(jìn)而找到適合當(dāng)前階段的設(shè)計(jì)方案的過程。既要考慮軟件隨業(yè)務(wù)發(fā)展的橫縱向擴(kuò)展性,也要考慮軟件自身的可行性、穩(wěn)定性和可維護(hù)性等技術(shù)因素。本書作者結(jié)合了自身多年架構(gòu)設(shè)計(jì)實(shí)踐經(jīng)驗(yàn)和多個(gè)業(yè)界經(jīng)典案例,幫助讀者理解、總結(jié)了許多實(shí)用的軟件架構(gòu)設(shè)計(jì)思路,以及軟件設(shè)計(jì)過程中經(jīng)常遇到的“道、術(shù)、虛、實(shí)”。 ——白沿松(花名太陽) 阿里巴巴高級技術(shù)專家 不同于一些白皮書、技術(shù)規(guī)范或國外大神的譯作,本書從技術(shù)出發(fā),所述內(nèi)容精而不雜,從技術(shù)功底到業(yè)務(wù)場景分析,特別是處處結(jié)合作者自身感悟,向廣大讀者展示了如何建立一種成體系的思維方式和學(xué)習(xí)方法,讓方法論不再晦澀難懂。無論工作三五年的程序員,還是工作八九年的老手,看這本書都會有收獲,有共鳴。 ——桂艷軍 某金融科技公司技術(shù)總監(jiān) 架構(gòu)師,從事軟件行業(yè)幾年的代碼工匠皆可稱之。然而,從基本原理到底層算法,再到中間應(yīng)用、上層模塊架構(gòu),甚至更往上一層的業(yè)務(wù)領(lǐng)域建模,能盡數(shù)領(lǐng)悟者不多見,能領(lǐng)悟且能實(shí)戰(zhàn)總結(jié)者甚少,能總結(jié)又能循序漸進(jìn)娓娓道來者,更是鳳毛麟角。作者將十年工作經(jīng)驗(yàn)?zāi)塾诒緯?若讀者能夠細(xì)細(xì)研讀,仔細(xì)領(lǐng)會,并能結(jié)合自身業(yè)務(wù)和領(lǐng)域,學(xué)一而實(shí)踐三,必將收益良多。 ——譚國富 騰訊高級工程師
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 內(nèi)容簡介
本書系統(tǒng)化地梳理了軟件架構(gòu)的方法論與實(shí)踐。通過本書,讀者可以對業(yè)務(wù)軟件的架構(gòu)方法學(xué)有一個(gè)全局的認(rèn)識,同時(shí)對軟件架構(gòu)需要的核心能力有深刻的理解,對個(gè)人的技術(shù)成長之路起到一定借鑒作用。本書內(nèi)容包括大規(guī)模分布式架構(gòu)涉及的語言、框架、中間件等內(nèi)容,同時(shí)本書將跳出某種具體的語言框架來總結(jié)梳理架構(gòu)的核心思維,這種思維適用于用任何一種語言框架解決任何一種業(yè)務(wù)問題。
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 目錄
第1部分 什么是架構(gòu)
第1章 五花八門的架構(gòu)師職業(yè) 2
1.1 架構(gòu)師職業(yè)分類 2
1.2 架構(gòu)的分類 2
第2章 架構(gòu)的道與術(shù) 5
2.1 何為道,何為術(shù) 5
2.2 道與術(shù)的辯證關(guān)系 6
第2部分 計(jì)算機(jī)功底
第3章 語言 10
3.1 層出不窮的編程語言 10
3.2 精通一門語言 10
第4章 操作系統(tǒng) 12
4.1 緩沖I/O和直接I/O 12
4.2 內(nèi)存映射文件與零拷貝 14
4.2.1 內(nèi)存映射文件 14
4.2.2 零拷貝 15
4.3 網(wǎng)絡(luò)I/O模型 17
4.3.1 實(shí)現(xiàn)層面的網(wǎng)絡(luò)I/O模型 17
4.3.2 Reactor模式與Preactor模式 20
4.3.3 select、epoll的LT與ET 20
4.3.4 服務(wù)器編程的1+N+M模型 22
4.4 進(jìn)程、線程和協(xié)程 24
4.5 無鎖(內(nèi)存屏障與CAS) 27
4.5.1 內(nèi)存屏障 27
4.5.2 CAS 30
第5章 網(wǎng)絡(luò) 31
5.1 HTTP 1.0 31
5.1.1 HTTP 1.0的問題 31
5.1.2 Keep-Alive機(jī)制與Content-Length屬性 31
5.2 HTTP 1.1 32
5.2.1 連接復(fù)用與Chunk機(jī)制 32
5.2.2 Pipeline與Head-of-line Blocking問題 33
5.2.3 HTTP/2出現(xiàn)之前的性能提升方法 34
5.2.4 “一來多回”問題 35
5.2.5 斷點(diǎn)續(xù)傳 36
5.3 HTTP/2 36
5.3.1 與HTTP 1.1的兼容 37
5.3.2 二進(jìn)制分幀 37
5.3.3 頭部壓縮 39
5.4 SSL/TLS 39
5.4.1 背景 39
5.4.2 對稱加密的問題 40
5.4.3 雙向非對稱加密 41
5.4.4 單向非對稱加密 42
5.4.5 中間人攻擊 43
5.4.6 數(shù)字證書與證書認(rèn)證中心 44
5.4.7 根證書與CA信任鏈 45
5.4.8 SSL/TLS協(xié)議:四次握手 47
5.5 HTTPS 48
5.6 TCP/UDP 49
5.6.1 可靠與不可靠 49
5.6.2 TCP的“假”連接(狀態(tài)機(jī)) 51
5.6.3 三次握手(網(wǎng)絡(luò)2將軍問題) 53
5.6.4 四次揮手 54
5.7 QUIC 56
5.7.1 不丟包(Raid5算法和Raid6算法) 57
5.7.2 更少的RTT 58
5.7.3 連接遷移 58
第6章 數(shù)據(jù)庫 59
6.1 范式與反范式 59
6.2 分庫分表 59
6.2.1 為什么要分 60
6.2.2 分布式ID生成服務(wù) 60
6.2.3 拆分維度的選擇 60
6.2.4 Join查詢問題 61
6.2.5 分布式事務(wù) 61
6.3 B+樹 62
6.3.1 B+樹邏輯結(jié)構(gòu) 62
6.3.2 B+樹物理結(jié)構(gòu) 63
6.3.3 非主鍵索引 65
6.4 事務(wù)與鎖 66
6.4.1 事務(wù)的四個(gè)隔離級別 66
6.4.2 悲觀鎖和樂觀鎖 67
6.4.3 死鎖檢測 71
6.5 事務(wù)實(shí)現(xiàn)原理之1:Redo Log 72
6.5.1 Write-Ahead 73
6.5.2 Redo Log的邏輯與物理結(jié)構(gòu) 74
6.5.3 Physiological Logging 75
6.5.4 I/O寫入的原子性(Double Write) 76
6.5.5 Redo Log Block結(jié)構(gòu) 77
6.5.6 事務(wù)、LSN與Log Block的關(guān)系 78
6.5.7 事務(wù)Rollback與崩潰恢復(fù)(ARIES算法) 80
6.6 事務(wù)實(shí)現(xiàn)原理之2:Undo Log 86
6.6.1 Undo Log是否一定需要 86
6.6.2 Undo Log(MVCC) 88
6.6.3 Undo Log不是Log 89
6.6.4 Undo Log與Redo Log的關(guān)聯(lián) 90
6.6.4 各種鎖 91
6.7 Binlog與主從復(fù)制 94
6.7.1 Binlog與Redo Log的主要差異 94
6.7.2 內(nèi)部XA – Binlog與Redo Log一致性問題 95
6.7.3 三種主從復(fù)制方式 96
6.7.3 并行復(fù)制 97
第7章 框架、軟件與中間件 99
7.1 對生態(tài)體系的認(rèn)知 99
7.2 框架 99
7.3 軟件與中間件 100
第3部分 技術(shù)架構(gòu)之道
第8章 高并發(fā)問題 104
8.1 問題分類 104
8.1.1 側(cè)重于“高并發(fā)讀”的系統(tǒng) 104
8.1.2 側(cè)重于“高并發(fā)寫”的系統(tǒng) 105
8.1.3 同時(shí)側(cè)重于“高并發(fā)讀”和“高并發(fā)寫”的系統(tǒng) 106
8.2 高并發(fā)讀 108
8.2.1 策略1:加緩存 108
8.2.2 策略2:并發(fā)讀 109
8.2.3 策略3:重寫輕讀 110
8.2.4 總結(jié):讀寫分離(CQRS架構(gòu)) 113
8.3 高并發(fā)寫 114
8.3.1 策略1:數(shù)據(jù)分片 114
8.3.2 策略2:任務(wù)分片 115
8.3.3 策略3:異步化 117
8.3.4 策略4:批量 123
8.3.5 策略5:串行化+多進(jìn)程單線程+異步I/O 124
8.4 容量規(guī)劃 125
8.4.1 吞吐量、響應(yīng)時(shí)間與并發(fā)數(shù) 125
8.4.2 壓力測試與容量評估 127
第9章 高可用與穩(wěn)定性 129
9.1 多副本 129
9.2 隔離、限流、熔斷和降級 130
9.3 灰度發(fā)布與回滾 135
9.4 監(jiān)控體系與日志報(bào)警 136
第10章 事務(wù)一致性 138
10.1 隨處可見的分布式事務(wù)問題 138
10.2 分布式事務(wù)解決方案匯總 139
10.2.1 2PC 139
10.2.2 *終一致性(消息中間件) 141
10.2.3 TCC 145
10.2.4 事務(wù)狀態(tài)表+調(diào)用方重試+接收方冪等 147
10.2.5 對賬 148
10.2.6 妥協(xié)方案:弱一致性+基于狀態(tài)的補(bǔ)償 149
10.2.7 妥協(xié)方案:重試+回滾+報(bào)警+人工修復(fù) 151
10.2.8 總結(jié) 152
第11章 多副本一致性 153
11.1 高可用且強(qiáng)一致性到底有多難 153
11.1.1 Kafka的消息丟失問題 153
11.1.2 Kafka消息錯(cuò)亂問題 156
11.2 Paxos算法解析 158
11.2.1 Paxos解決什么問題 158
11.2.2 復(fù)制狀態(tài)機(jī) 161
11.2.3 一個(gè)樸素而深刻的思想 163
11.2.4 Basic Paxos算法 164
11.2.5 Multi Paxos算法 167
11.3 Raft算法解析 169
11.3.1 為“可理解性”而設(shè)計(jì) 169
11.3.2 單點(diǎn)寫入 170
11.3.3 日志結(jié)構(gòu) 171
11.3.4 階段1:Leader選舉 174
11.3.5 階段2:日志復(fù)制 176
11.3.6 階段3:恢復(fù)階段 177
11.3.7 安全性保證 177
11.4 Zab算法解析 180
11.4.1 Replicated State Machine vs. Primary-Backup System 180
11.4.2 zxid 182
11.4.3 “序”:亂序提交 vs. 順序提交 182
11.4.4 Leader選舉:FLE算法 184
11.4.5 正常階段:2階段提交 186
11.4.6 恢復(fù)階段 186
11.5 三種算法對比 187
第12章 CAP理論 189
12.1 CAP理論的誤解 189
12.2 現(xiàn)實(shí)世界不存在“強(qiáng)一致性”(PACELC理論) 190
12.3 典型案例:分布式鎖 192
第4部分 業(yè)務(wù)架構(gòu)之道
第13章 業(yè)務(wù)意識 196
13.1 產(chǎn)品經(jīng)理vs.需求分析師 196
13.2 什么叫作一個(gè)“業(yè)務(wù)” 198
13.3 “業(yè)務(wù)架構(gòu)”的雙重含義 199
13.4 “業(yè)務(wù)架構(gòu)”與“技術(shù)架構(gòu)”的區(qū)分 200
第14章 業(yè)務(wù)架構(gòu)思維 202
14.1 “偽”分層 202
14.2 邊界思維 204
14.3 系統(tǒng)化思維 205
14.4 利益相關(guān)者分析 206
14.5 非功能性需求分析(以終為始) 208
14.6 視角(橫看成嶺側(cè)成峰) 209
14.7 抽象 210
14.8 建模 213
14.9 正交分解 215
第15章 技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)的融合 218
15.1 各式各樣的方法論 218
15.2 為什么要“領(lǐng)域驅(qū)動” 218
15.3 “業(yè)務(wù)流程”不等于“系統(tǒng)流程” 221
15.4 為何很難設(shè)計(jì)一個(gè)好的領(lǐng)域模型 222
15.5 領(lǐng)域驅(qū)動設(shè)計(jì)與微服務(wù)架構(gòu)的“合” 223
15.6 領(lǐng)域驅(qū)動設(shè)計(jì)與讀寫分離(CQRS) 224
15.7 業(yè)務(wù)分層架構(gòu)模式 225
15.8 管道—過濾器架構(gòu)模式 226
15.9 狀態(tài)機(jī)架構(gòu)模式 226
15.10 業(yè)務(wù)切面/業(yè)務(wù)閉環(huán)架構(gòu)模式 228
第5部分 從架構(gòu)到技術(shù)管理
第16章 個(gè)人素質(zhì)的提升 232
16.1 能力模型 232
16.2 影響力的塑造 234
第17章 團(tuán)隊(duì)能力的提升 237
17.1 不確定性與風(fēng)險(xiǎn)把控 237
17.2 以價(jià)值為中心的管理 239
17.3 團(tuán)隊(duì)培養(yǎng) 241
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 作者簡介
余春龍,中科院軟件所計(jì)算機(jī)碩士畢業(yè)。熱衷于高并發(fā)高可用架構(gòu)、業(yè)務(wù)建模、領(lǐng)域驅(qū)動設(shè)計(jì),在十年的工作中,經(jīng)歷過游戲、社交、廣告、電商等各種類型的項(xiàng)目,積累了較豐富的工程經(jīng)驗(yàn)。
- >
煙與鏡
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(紅燭學(xué)術(shù)叢書)
- >
隨園食單
- >
有舍有得是人生
- >
姑媽的寶刀
- >
羅曼·羅蘭讀書隨筆-精裝
- >
詩經(jīng)-先民的歌唱
- >
月亮與六便士