包郵 軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道
-
>
全國(guó)計(jì)算機(jī)等級(jí)考試最新真考題庫(kù)模擬考場(chǎng)及詳解·二級(jí)MSOffice高級(jí)應(yīng)用
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強(qiáng)教科書(shū)(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 版權(quán)信息
- ISBN:9787121356032
- 條形碼:9787121356032 ; 978-7-121-35603-2
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類(lèi):>>
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 本書(shū)特色
揭秘互聯(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ì),是對(duì)問(wèn)題域空間反復(fù)運(yùn)用演繹、抽象、歸納等方法,進(jìn)而找到適合當(dāng)前階段的設(shè)計(jì)方案的過(guò)程。既要考慮軟件隨業(yè)務(wù)發(fā)展的橫縱向擴(kuò)展性,也要考慮軟件自身的可行性、穩(wěn)定性和可維護(hù)性等技術(shù)因素。本書(shū)作者結(jié)合了自身多年架構(gòu)設(shè)計(jì)實(shí)踐經(jīng)驗(yàn)和多個(gè)業(yè)界經(jīng)典案例,幫助讀者理解、總結(jié)了許多實(shí)用的軟件架構(gòu)設(shè)計(jì)思路,以及軟件設(shè)計(jì)過(guò)程中經(jīng)常遇到的“道、術(shù)、虛、實(shí)”。 ——白沿松(花名太陽(yáng)) 阿里巴巴高級(jí)技術(shù)專家 不同于一些白皮書(shū)、技術(shù)規(guī)范或國(guó)外大神的譯作,本書(shū)從技術(shù)出發(fā),所述內(nèi)容精而不雜,從技術(shù)功底到業(yè)務(wù)場(chǎng)景分析,特別是處處結(jié)合作者自身感悟,向廣大讀者展示了如何建立一種成體系的思維方式和學(xué)習(xí)方法,讓方法論不再晦澀難懂。無(wú)論工作三五年的程序員,還是工作八九年的老手,看這本書(shū)都會(huì)有收獲,有共鳴。 ——桂艷軍 某金融科技公司技術(shù)總監(jiān) 架構(gòu)師,從事軟件行業(yè)幾年的代碼工匠皆可稱之。然而,從基本原理到底層算法,再到中間應(yīng)用、上層模塊架構(gòu),甚至更往上一層的業(yè)務(wù)領(lǐng)域建模,能盡數(shù)領(lǐng)悟者不多見(jiàn),能領(lǐng)悟且能實(shí)戰(zhàn)總結(jié)者甚少,能總結(jié)又能循序漸進(jìn)娓娓道來(lái)者,更是鳳毛麟角。作者將十年工作經(jīng)驗(yàn)?zāi)塾诒緯?shū), 若讀者能夠細(xì)細(xì)研讀,仔細(xì)領(lǐng)會(huì),并能結(jié)合自身業(yè)務(wù)和領(lǐng)域,學(xué)一而實(shí)踐三,必將收益良多。 ——譚國(guó)富 騰訊高級(jí)工程師
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 內(nèi)容簡(jiǎn)介
本書(shū)系統(tǒng)化地梳理了軟件架構(gòu)的方法論與實(shí)踐。通過(guò)本書(shū),讀者可以對(duì)業(yè)務(wù)軟件的架構(gòu)方法學(xué)有一個(gè)全局的認(rèn)識(shí),同時(shí)對(duì)軟件架構(gòu)需要的核心能力有深刻的理解,對(duì)個(gè)人的技術(shù)成長(zhǎng)之路起到一定借鑒作用。本書(shū)內(nèi)容包括大規(guī)模分布式架構(gòu)涉及的語(yǔ)言、框架、中間件等內(nèi)容,同時(shí)本書(shū)將跳出某種具體的語(yǔ)言框架來(lái)總結(jié)梳理架構(gòu)的核心思維,這種思維適用于用任何一種語(yǔ)言框架解決任何一種業(yè)務(wù)問(wèn)題。
軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道 目錄
第1部分 什么是架構(gòu)
第1章 五花八門(mén)的架構(gòu)師職業(yè) 2
1.1 架構(gòu)師職業(yè)分類(lèi) 2
1.2 架構(gòu)的分類(lèi) 2
第2章 架構(gòu)的道與術(shù) 5
2.1 何為道,何為術(shù) 5
2.2 道與術(shù)的辯證關(guān)系 6
第2部分 計(jì)算機(jī)功底
第3章 語(yǔ)言 10
3.1 層出不窮的編程語(yǔ)言 10
3.2 精通一門(mén)語(yǔ)言 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 無(wú)鎖(內(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的問(wèn)題 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問(wèn)題 33
5.2.3 HTTP/2出現(xiàn)之前的性能提升方法 34
5.2.4 “一來(lái)多回”問(wèn)題 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 對(duì)稱加密的問(wèn)題 40
5.4.3 雙向非對(duì)稱加密 41
5.4.4 單向非對(duì)稱加密 42
5.4.5 中間人攻擊 43
5.4.6 數(shù)字證書(shū)與證書(shū)認(rèn)證中心 44
5.4.7 根證書(shū)與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將軍問(wèn)題) 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ù)庫(kù) 59
6.1 范式與反范式 59
6.2 分庫(kù)分表 59
6.2.1 為什么要分 60
6.2.2 分布式ID生成服務(wù) 60
6.2.3 拆分維度的選擇 60
6.2.4 Join查詢問(wèn)題 61
6.2.5 分布式事務(wù) 61
6.3 B+樹(shù) 62
6.3.1 B+樹(shù)邏輯結(jié)構(gòu) 62
6.3.2 B+樹(shù)物理結(jié)構(gòu) 63
6.3.3 非主鍵索引 65
6.4 事務(wù)與鎖 66
6.4.1 事務(wù)的四個(gè)隔離級(jí)別 66
6.4.2 悲觀鎖和樂(lè)觀鎖 67
6.4.3 死鎖檢測(cè) 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寫(xiě)入的原子性(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一致性問(wèn)題 95
6.7.3 三種主從復(fù)制方式 96
6.7.3 并行復(fù)制 97
第7章 框架、軟件與中間件 99
7.1 對(duì)生態(tài)體系的認(rèn)知 99
7.2 框架 99
7.3 軟件與中間件 100
第3部分 技術(shù)架構(gòu)之道
第8章 高并發(fā)問(wèn)題 104
8.1 問(wèn)題分類(lèi) 104
8.1.1 側(cè)重于“高并發(fā)讀”的系統(tǒng) 104
8.1.2 側(cè)重于“高并發(fā)寫(xiě)”的系統(tǒng) 105
8.1.3 同時(shí)側(cè)重于“高并發(fā)讀”和“高并發(fā)寫(xiě)”的系統(tǒng) 106
8.2 高并發(fā)讀 108
8.2.1 策略1:加緩存 108
8.2.2 策略2:并發(fā)讀 109
8.2.3 策略3:重寫(xiě)輕讀 110
8.2.4 總結(jié):讀寫(xiě)分離(CQRS架構(gòu)) 113
8.3 高并發(fā)寫(xiě) 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 壓力測(cè)試與容量評(píng)估 127
第9章 高可用與穩(wěn)定性 129
9.1 多副本 129
9.2 隔離、限流、熔斷和降級(jí) 130
9.3 灰度發(fā)布與回滾 135
9.4 監(jiān)控體系與日志報(bào)警 136
第10章 事務(wù)一致性 138
10.1 隨處可見(jiàn)的分布式事務(wù)問(wèn)題 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 對(duì)賬 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的消息丟失問(wèn)題 153
11.1.2 Kafka消息錯(cuò)亂問(wèn)題 156
11.2 Paxos算法解析 158
11.2.1 Paxos解決什么問(wèn)題 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)寫(xiě)入 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 三種算法對(duì)比 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ù)意識(shí) 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ū)動(dòng)” 218
15.3 “業(yè)務(wù)流程”不等于“系統(tǒng)流程” 221
15.4 為何很難設(shè)計(jì)一個(gè)好的領(lǐng)域模型 222
15.5 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與微服務(wù)架構(gòu)的“合” 223
15.6 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與讀寫(xiě)分離(CQRS) 224
15.7 業(yè)務(wù)分層架構(gòu)模式 225
15.8 管道—過(guò)濾器架構(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)融合之道 作者簡(jiǎn)介
余春龍,中科院軟件所計(jì)算機(jī)碩士畢業(yè)。熱衷于高并發(fā)高可用架構(gòu)、業(yè)務(wù)建模、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),在十年的工作中,經(jīng)歷過(guò)游戲、社交、廣告、電商等各種類(lèi)型的項(xiàng)目,積累了較豐富的工程經(jīng)驗(yàn)。
- >
中國(guó)人在烏蘇里邊疆區(qū):歷史與人類(lèi)學(xué)概述
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(shū)(紅燭學(xué)術(shù)叢書(shū))
- >
月亮與六便士
- >
人文閱讀與收藏·良友文學(xué)叢書(shū):一天的工作
- >
苦雨齋序跋文-周作人自編集
- >
詩(shī)經(jīng)-先民的歌唱
- >
羅曼·羅蘭讀書(shū)隨筆-精裝
- >
姑媽的寶刀