-
>
決戰(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)用從入門到精通-(附贈(zèng)1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
億級流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 版權(quán)信息
- ISBN:9787121476983
- 條形碼:9787121476983 ; 978-7-121-47698-3
- 裝幀:平塑勒
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
億級流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 本書特色
本書從全局的角度深度解析了互聯(lián)網(wǎng)后臺(tái)架構(gòu)設(shè)計(jì)的觀點(diǎn)和方法,融入了大量來自工業(yè)級互聯(lián)網(wǎng)后臺(tái)的實(shí)戰(zhàn)案例。本書涵蓋知識(shí)面廣、深入淺出,對于渴望成為后臺(tái)架構(gòu)師的學(xué)習(xí)者甚至初學(xué)者來說,是一本值得深度研讀的好書。本書不僅是我們學(xué)習(xí)架構(gòu)知識(shí)時(shí)的優(yōu)質(zhì)資料,也是我們?nèi)粘9ぷ髦械膶?shí)用參考手冊。 ——鄭閆強(qiáng)◇小米科技高級技術(shù)總監(jiān) 作者在本書中詳細(xì)介紹了億級流量系統(tǒng)架構(gòu)設(shè)計(jì)的知識(shí)點(diǎn),并給出了自己的獨(dú)到觀點(diǎn)。本書不但涵蓋了系統(tǒng)架構(gòu)設(shè)計(jì)基礎(chǔ)知識(shí),還涵蓋了目前廣大UGC平臺(tái)的常見服務(wù)設(shè)計(jì)實(shí)踐,既可以作為系統(tǒng)架構(gòu)設(shè)計(jì)參考資料,也可以作為相關(guān)面試寶典。 ——李艷鵬◇互聯(lián)網(wǎng)資深架構(gòu)師,《分布式服務(wù)架構(gòu)》和《可伸縮服務(wù)架構(gòu)》作者 本書介紹了大型互聯(lián)網(wǎng)公司的基礎(chǔ)組件、高并發(fā)和高可用設(shè)計(jì)的通用思路,以及基于這些知識(shí)解決真實(shí)業(yè)務(wù)問題的案例。有經(jīng)驗(yàn)的讀者可以通過閱讀本書對自己的知識(shí)進(jìn)行查漏補(bǔ)缺,新手也可以通過閱讀本書建立自己的知識(shí)體系。如果能夠在閱讀書中基礎(chǔ)服務(wù)設(shè)計(jì)的案例之前,先想一想自己會(huì)如何設(shè)計(jì),就能更深刻地理解這些設(shè)計(jì)的精巧之處。 ——王迪◇某社交產(chǎn)品資深架構(gòu)師 本書介紹了互聯(lián)網(wǎng)后臺(tái)核心知識(shí),涉及機(jī)房搭建、服務(wù)治理、高并發(fā)設(shè)計(jì)和一系列常見系統(tǒng)架構(gòu)設(shè)計(jì)話題,涵蓋了億級用戶應(yīng)用后臺(tái)的大部分要素。本書圖文并茂、行文流暢,非常適合互聯(lián)網(wǎng)后臺(tái)開發(fā)工程師深度閱讀。 ——秦磊◇某海外社交產(chǎn)品業(yè)務(wù)架構(gòu)負(fù)責(zé)人 本書深入探討了高并發(fā)系統(tǒng)設(shè)計(jì),從大廠的視角解讀技術(shù)棧選擇、高并發(fā)處理等核心內(nèi)容。無論是大廠的工程師,還是計(jì)劃入行的學(xué)生,都能從中借鑒寶貴的實(shí)戰(zhàn)經(jīng)驗(yàn)。本書是我們提升高并發(fā)系統(tǒng)設(shè)計(jì)能力的理想讀物。 ——郝萌◇哈爾濱工業(yè)大學(xué)講師,CCF高性能專委會(huì)執(zhí)行委員 這是一本架構(gòu)師參考指南,凝聚了作者多年的工作經(jīng)驗(yàn),干貨滿滿。如果你初出茅廬,正在找工作,或者剛剛走上后端工程師的工作崗位,則建議認(rèn)真閱讀本書,因?yàn)樗軒椭闳媪私夂蠖斯こ碳夹g(shù)體系;如果你已經(jīng)工作了幾年,渴望進(jìn)一步提高,則也建議閱讀本書,因?yàn)槟隳軓闹袑W(xué)習(xí)作者對過往經(jīng)驗(yàn)的梳理和結(jié)構(gòu)化輸出方法。 ——叢小亮◇字節(jié)跳動(dòng)資深研發(fā)工程師
億級流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 內(nèi)容簡介
本書講解億級流量系統(tǒng)架構(gòu)的設(shè)計(jì)方法及實(shí)戰(zhàn)經(jīng)驗(yàn),在內(nèi)容結(jié)構(gòu)上分為三大篇:架構(gòu)知識(shí)篇(第1~3章),主要講解海量用戶應(yīng)用后臺(tái)的組成結(jié)構(gòu)、高并發(fā)處理和服務(wù)可用性保障,首先講解后臺(tái)由哪些關(guān)鍵組件構(gòu)成及機(jī)房搭建思路,然后講解后臺(tái)在應(yīng)對高并發(fā)讀請求和寫請求時(shí)的通用處理手段,*后講解通用的服務(wù)治理手段以保障后臺(tái)高效運(yùn)行;A(chǔ)服務(wù)設(shè)計(jì)篇(第4~6章),主要講解幾個(gè)基礎(chǔ)服務(wù)的架構(gòu)設(shè)計(jì),這里選取的基礎(chǔ)服務(wù)幾乎為所有互聯(lián)網(wǎng)后臺(tái)所需的專門系統(tǒng),包括分布式專享ID生成器、用戶登錄服務(wù)和海量消息推送系統(tǒng);核心服務(wù)設(shè)計(jì)篇(第7~13章),主要講解常見社交互動(dòng)場景中所需的核心服務(wù)的架構(gòu)設(shè)計(jì),包括內(nèi)容發(fā)布系統(tǒng)、通用計(jì)數(shù)系統(tǒng)、排行榜服務(wù)、用戶關(guān)系服務(wù)、Timeline Feed服務(wù)、評論服務(wù)和IM服務(wù)。
億級流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 目錄
第1章 大型互聯(lián)網(wǎng)公司的基礎(chǔ)架構(gòu) 2
1.1 引言:單機(jī)房的內(nèi)部架構(gòu) 2
1.2 客戶端連接機(jī)房的技術(shù)1:DNS 5
1.2.1 DNS的意義 5
1.2.2 域名結(jié)構(gòu) 6
1.2.3 域名服務(wù)器 6
1.2.4 域名解析過程 7
1.3 客戶端連接機(jī)房的技術(shù)2:HTTP DNS 9
1.3.1 DNS存在的問題 9
1.3.2 HTTP DNS的原理 10
1.3.3 HTTP DNS實(shí)踐 11
1.4 接入層的技術(shù)演進(jìn) 12
1.4.1 Nginx 13
1.4.2 LVS 19
1.4.3 LVS Nginx接入層的架構(gòu) 25
1.5 服務(wù)發(fā)現(xiàn) 28
1.5.1 注冊與發(fā)現(xiàn) 29
1.5.2 可用地址管理 30
1.5.3 地址變更推送 31
1.6 RPC服務(wù) 32
1.7 存儲(chǔ)層技術(shù):MySQL 35
1.7.1 關(guān)系型數(shù)據(jù)庫 35
1.7.2 MySQL 37
1.7.3 高可用架構(gòu)1:主從模式 37
1.7.4 高可用架構(gòu)2:MHA 40
1.7.5 高可用架構(gòu)3:MMM 41
1.7.6 高可用架構(gòu)4:MGR 43
1.8 存儲(chǔ)層技術(shù):Redis 44
1.8.1 高可用架構(gòu)1:主從模式 44
1.8.2 高可用架構(gòu)2:哨兵模式 45
1.8.3 高可用架構(gòu)3:集群模式 46
1.8.4 高可用架構(gòu)4:中心化集群架構(gòu) 50
1.9 存儲(chǔ)層技術(shù):LSM Tree 53
1.9.1 LSM Tree的原理 53
1.9.2 讀/寫數(shù)據(jù)流程 56
1.10 存儲(chǔ)層技術(shù):其他NoSQL數(shù)據(jù)庫 57
1.11 消息中間件技術(shù) 61
1.11.1 通信模式與用途 62
1.11.2 Kafka 64
1.11.3 Kafka的高可用 67
1.12 多機(jī)房:主備機(jī)房 69
1.13 多機(jī)房:同城雙活 71
1.13.1 存儲(chǔ)層改造 71
1.13.2 靈活實(shí)施 73
1.13.3 分流與故障切流 74
1.13.4 兩地三中心 77
1.14 多機(jī)房:異地多活 78
1.14.1 架構(gòu)要點(diǎn) 78
1.14.2 MySQL DRC的原理 80
1.14.3 Redis DRC的原理 83
1.14.4 分流策略 84
1.14.5 數(shù)據(jù)復(fù)制鏈路 85
1.15 本章小結(jié) 86
第2章 通用的高并發(fā)架構(gòu)設(shè)計(jì) 88
2.1 高并發(fā)架構(gòu)設(shè)計(jì)的要點(diǎn) 88
2.1.1 形成高并發(fā)系統(tǒng)的必要條件 88
2.1.2 高并發(fā)系統(tǒng)的衡量指標(biāo) 89
2.1.3 高并發(fā)場景分類 90
2.2 高并發(fā)讀場景方案1:數(shù)據(jù)庫讀/寫分離 91
2.2.1 讀/寫分離架構(gòu) 91
2.2.2 讀/寫請求路由方式 91
2.2.3 主從延遲與解決方案 92
2.3 高并發(fā)讀場景方案2:本地緩存 93
2.3.1 基本的緩存淘汰策略 93
2.3.2 W-TinyLFU策略 94
2.3.3 緩存擊穿與SingleFlight 95
2.4 高并發(fā)讀場景方案3:分布式緩存 100
2.4.1 分布式緩存選型 100
2.4.2 如何使用Redis緩存 101
2.4.3 緩存穿透 102
2.4.4 緩存雪崩 103
2.4.5 緩存更新 103
2.5 高并發(fā)讀場景總結(jié):CQRS 105
2.5.1 CQRS的簡要架構(gòu)與實(shí)現(xiàn) 106
2.5.2 更多的使用場景 107
2.5.3 CQRS架構(gòu)的特點(diǎn) 108
2.6 高并發(fā)寫場景方案1:數(shù)據(jù)分片之?dāng)?shù)據(jù)庫分庫分表 108
2.6.1 分庫和分表 109
2.6.2 垂直拆分 109
2.6.3 水平拆分 111
2.6.4 水平拆分規(guī)則 113
2.6.5 擴(kuò)容方案 117
2.6.6 其他數(shù)據(jù)分片形式 120
2.7 高并發(fā)寫場景方案2:異步寫與寫聚合 120
2.7.1 異步寫 121
2.7.2 寫聚合 122
2.8 本章小結(jié) 122
第3章 通用的服務(wù)可用性治理手段 124
3.1 微服務(wù)架構(gòu)與網(wǎng)絡(luò)調(diào)用 124
3.2 重試 126
3.2.1 冪等接口 126
3.2.2 重試時(shí)機(jī) 130
3.2.3 重試風(fēng)險(xiǎn)與重試風(fēng)暴 130
3.2.4 重試控制:不重試的請求 131
3.2.5 重試控制:重試請求比 132
3.3 熔斷與隔離 132
3.3.1 服務(wù)雪崩 133
3.3.2 Hystrix熔斷器 134
3.3.3 Resilience4j和Sentinel熔斷器 136
3.3.4 共享資源與艙壁隔離 137
3.3.5 艙壁隔離的實(shí)現(xiàn) 138
3.4 限流 139
3.4.1 頻控 140
3.4.2 單機(jī)限流1:時(shí)間窗口 141
3.4.3 單機(jī)限流2:漏桶算法 143
3.4.4 單機(jī)限流3:令牌桶算法 144
3.4.5 全局限流 146
3.5 自適應(yīng)限流 148
3.5.1 服務(wù)與等待隊(duì)列 149
3.5.2 基于請求排隊(duì)時(shí)間 150
3.5.3 基于延遲比率 151
3.5.4 其他方案 152
3.6 降級策略 155
3.6.1 服務(wù)依賴度降級 155
3.6.2 讀請求降級 158
3.6.3 寫請求降級 159
3.7 本章小結(jié) 160
基礎(chǔ)服務(wù)設(shè)計(jì)篇
第4章 唯一ID生成器 164
4.1 分布式唯一ID 164
4.1.1 全局唯一與UUID 164
4.1.2 唯一ID生成器的特點(diǎn) 165
4.1.3 單調(diào)遞增與趨勢遞增 167
4.2 單調(diào)遞增的唯一ID 168
4.2.1 Redis INCRBY命令 168
4.2.2 基于數(shù)據(jù)庫的自增主鍵 171
4.2.3 高可用架構(gòu) 172
4.3 趨勢遞增的唯一ID:基于時(shí)間戳 174
4.3.1 正確使用時(shí)間戳 174
4.3.2 Snowflake算法 175
4.3.3 Snowflake算法的靈活應(yīng)用 175
4.3.4 分配服務(wù)實(shí)例ID 177
4.3.5 時(shí)鐘回?fù)軉栴}與解決方案 179
4.3.6 *終架構(gòu) 179
4.4 趨勢遞增的唯一ID:基于數(shù)據(jù)庫的自增主鍵 180
4.4.1 分庫分表架構(gòu) 181
4.4.2 批量緩存架構(gòu) 182
4.5 美團(tuán)點(diǎn)評開源方案:Leaf 183
4.5.1 Leaf-segment方案 183
4.5.2 Leaf-snowflake方案 185
4.6 本章小結(jié) 187
第5章 用戶登錄服務(wù) 189
5.1 用戶賬號(hào) 189
5.2 用戶登錄服務(wù)的功能要點(diǎn) 190
5.3 密碼保護(hù) 192
5.3.1 使用HTTPS通信 192
5.3.2 非對稱加密 193
5.3.3 密碼加密存儲(chǔ) 194
5.4 手機(jī)號(hào)登錄和郵箱登錄 194
5.4.1 數(shù)據(jù)表設(shè)計(jì) 195
5.4.2 用戶注冊 195
5.4.3 用戶登錄 196
5.4.4 手機(jī)號(hào)一鍵登錄 197
5.5 第三方登錄 199
5.5.1 OAuth 2標(biāo)準(zhǔn) 200
5.5.2 客戶端接入第三方登錄 201
5.5.3 服務(wù)端接入第三方登錄 202
5.5.4 第三方登錄的完整流程總結(jié) 203
5.6 登錄態(tài)管理 204
5.6.1 存儲(chǔ)型方案:Session 205
5.6.2 計(jì)算型方案:令牌 207
5.6.3 長短令牌方案 208
5.7 掃碼登錄 210
5.7.1 二維碼 210
5.7.2 掃碼登錄的場景介紹 211
5.7.3 掃碼登錄的技術(shù)實(shí)現(xiàn) 211
5.8 本章小結(jié) 213
第6章 海量推送系統(tǒng) 215
6.1 分布式長連接服務(wù)的技術(shù)要素分析 216
6.1.1 WebSocket協(xié)議簡介 216
6.1.2 長連接服務(wù)器 217
6.1.3 分布式推送服務(wù)器 218
6.1.4 路由算法 219
6.2 海量推送系統(tǒng)設(shè)計(jì) 220
6.2.1 整體架構(gòu)設(shè)計(jì) 220
6.2.2 長連接的建立過程 221
6.2.3 消息格式設(shè)計(jì) 222
6.2.4 消息推送接口 223
6.2.5 單點(diǎn)消息推送的細(xì)節(jié) 224
6.2.6 全局消息推送的細(xì)節(jié) 225
6.2.7 多點(diǎn)消息推送的細(xì)節(jié) 226
6.2.8 pusher平滑升級的問題 227
6.2.9 pusher擴(kuò)容的問題 236
6.3 本章小結(jié) 237
核心服務(wù)設(shè)計(jì)篇
第7章 內(nèi)容發(fā)布系統(tǒng) 240
7.1 內(nèi)容發(fā)布系統(tǒng)的設(shè)計(jì)背景 240
7.2 內(nèi)容存儲(chǔ)設(shè)計(jì) 241
7.2.1 內(nèi)容數(shù)據(jù)的存儲(chǔ) 241
7.2.2 內(nèi)容元信息的存儲(chǔ) 243
7.2.3 內(nèi)容主體的存儲(chǔ)選型 244
7.2.4 音視頻轉(zhuǎn)碼 245
7.3 內(nèi)容審核設(shè)計(jì) 246
7.3.1 內(nèi)容審核的必要性 246
7.3.2 內(nèi)容的審核時(shí)機(jī)策略 246
7.3.3 如何審核內(nèi)容 247
7.3.4 審核中心的對外交互 249
7.4 內(nèi)容的全生命周期管理設(shè)計(jì) 250
7.4.1 內(nèi)容的創(chuàng)建設(shè)計(jì) 250
7.4.2 內(nèi)容的修改設(shè)計(jì) 252
7.4.3 內(nèi)容審核結(jié)果處理與版本控制設(shè)計(jì) 254
7.4.4 內(nèi)容的刪除與下架設(shè)計(jì) 256
7.5 內(nèi)容分發(fā)設(shè)計(jì) 256
7.5.1 內(nèi)容分發(fā)渠道 256
7.5.2 何時(shí)通知分發(fā)渠道 257
7.5.3 將內(nèi)容投遞到分發(fā)渠道 257
7.6 內(nèi)容展示設(shè)計(jì) 258
7.6.1 內(nèi)容數(shù)據(jù)的特點(diǎn) 259
7.6.2 使用CDN加速靜態(tài)資源訪問 259
7.6.3 使用緩存和多副本支撐高并發(fā)讀取 260
7.6.4 內(nèi)容展示流程設(shè)計(jì) 263
7.7 完整架構(gòu)總覽 265
7.8 本章小結(jié) 267
第8章 通用計(jì)數(shù)系統(tǒng) 268
8.1 計(jì)數(shù)的常見用途 268
8.2 如何存儲(chǔ)計(jì)數(shù)數(shù)據(jù) 269
8.2.1 計(jì)數(shù)數(shù)據(jù)的特點(diǎn) 269
8.2.2 關(guān)系型數(shù)據(jù)庫的困境 270
8.2.3 是否要使用關(guān)系型數(shù)據(jù)庫 270
8.2.4 使用Redis存儲(chǔ)計(jì)數(shù)數(shù)據(jù) 271
8.3 海量計(jì)數(shù)服務(wù)設(shè)計(jì) 272
8.3.1 Redis數(shù)據(jù)類型 272
8.3.2 計(jì)數(shù)累計(jì)與讀取的示例 274
8.3.3 優(yōu)化內(nèi)存的調(diào)研 274
8.3.4 優(yōu)化內(nèi)存:定制化Redis 276
8.3.5 冷熱數(shù)據(jù)分離 279
8.3.6 應(yīng)對過熱數(shù)據(jù) 280
8.3.7 計(jì)數(shù)服務(wù)架構(gòu)圖 281
8.3.8 計(jì)數(shù)服務(wù)的適用范圍 282
8.4 本章小結(jié) 283
第9章 排行榜服務(wù) 284
9.1 排行榜的應(yīng)用場景 284
9.2 排行榜技術(shù)的特點(diǎn) 285
9.3 使用Redis實(shí)現(xiàn)排行榜 285
9.3.1 使用Redis ZSET 286
9.3.2 冪等更新 287
9.3.3 同積分排名處理 289
9.3.4 服務(wù)設(shè)計(jì) 291
9.3.5 關(guān)于大Key的問題 295
9.4 粗估排行榜的實(shí)現(xiàn) 296
9.4.1 線段樹 296
9.4.2 粗估排名的實(shí)現(xiàn) 299
9.5 精確排名與粗估排名結(jié)合 306
9.6 本章小結(jié) 309
第10章 用戶關(guān)系服務(wù) 310
10.1 用戶關(guān)系服務(wù)的職責(zé) 310
10.2 基于Redis ZSET的設(shè)計(jì) 311
10.3 基于數(shù)據(jù)庫的設(shè)計(jì) 312
10.3.1 *初的想法 312
10.3.2 應(yīng)對分庫分表 313
10.3.3 Following表的索引設(shè)計(jì) 314
10.3.4 Follower表的索引設(shè)計(jì) 316
10.3.5 進(jìn)階:回表問題與優(yōu)化 316
10.3.6 關(guān)注數(shù)和粉絲數(shù) 317
10.4 緩存查詢 318
10.4.1 緩存什么數(shù)據(jù) 318
10.4.2 緩存的創(chuàng)建與更新策略 319
10.4.3 本地緩存 321
10.4.4 緩存與數(shù)據(jù)庫結(jié)合的*終方案 321
10.5 基于圖數(shù)據(jù)庫的設(shè)計(jì) 323
10.5.1 實(shí)現(xiàn)用戶關(guān)系 323
10.5.2 應(yīng)用權(quán)衡 327
10.6 本章小結(jié) 328
第11章 Timeline Feed1
億級流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 作者簡介
李琛軒,高級技術(shù)專家,8年互聯(lián)網(wǎng)后臺(tái)開發(fā)經(jīng)驗(yàn),現(xiàn)任某全球社交產(chǎn)品后臺(tái)技術(shù)負(fù)責(zé)人。從事互聯(lián)網(wǎng)社交產(chǎn)品領(lǐng)域的研發(fā)工作與架構(gòu)設(shè)計(jì)多年,從業(yè)以來負(fù)責(zé)過多個(gè)知名產(chǎn)品的后臺(tái)開發(fā)工作,相繼深耕于消息隊(duì)列、服務(wù)發(fā)現(xiàn)系統(tǒng)、服務(wù)治理、分布式事務(wù)、高并發(fā)架構(gòu)設(shè)計(jì)、全球多活等技術(shù)領(lǐng)域。
- >
史學(xué)評論
- >
小考拉的故事-套裝共3冊
- >
詩經(jīng)-先民的歌唱
- >
巴金-再思錄
- >
龍榆生:詞曲概論/大家小書
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
回憶愛瑪儂
- >
名家?guī)阕x魯迅:朝花夕拾