-
>
全國(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)教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 版權(quán)信息
- ISBN:9787121476983
- 條形碼:9787121476983 ; 978-7-121-47698-3
- 裝幀:平塑勒
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>>
億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 本書特色
本書從全局的角度深度解析了互聯(lián)網(wǎng)后臺(tái)架構(gòu)設(shè)計(jì)的觀點(diǎn)和方法,融入了大量來(lái)自工業(yè)級(jí)互聯(lián)網(wǎng)后臺(tái)的實(shí)戰(zhàn)案例。本書涵蓋知識(shí)面廣、深入淺出,對(duì)于渴望成為后臺(tái)架構(gòu)師的學(xué)習(xí)者甚至初學(xué)者來(lái)說(shuō),是一本值得深度研讀的好書。本書不僅是我們學(xué)習(xí)架構(gòu)知識(shí)時(shí)的優(yōu)質(zhì)資料,也是我們?nèi)粘9ぷ髦械膶?shí)用參考手冊(cè)。 ——鄭閆強(qiáng)◇小米科技高級(jí)技術(shù)總監(jiān) 作者在本書中詳細(xì)介紹了億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)的知識(shí)點(diǎn),并給出了自己的獨(dú)到觀點(diǎn)。本書不但涵蓋了系統(tǒng)架構(gòu)設(shè)計(jì)基礎(chǔ)知識(shí),還涵蓋了目前廣大UGC平臺(tái)的常見(jiàn)服務(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ù)問(wèn)題的案例。有經(jīng)驗(yàn)的讀者可以通過(guò)閱讀本書對(duì)自己的知識(shí)進(jìn)行查漏補(bǔ)缺,新手也可以通過(guò)閱讀本書建立自己的知識(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ì)和一系列常見(jiàn)系統(tǒng)架構(gòu)設(shè)計(jì)話題,涵蓋了億級(jí)用戶應(yīng)用后臺(tái)的大部分要素。本書圖文并茂、行文流暢,非常適合互聯(lián)網(wǎng)后臺(tái)開(kāi)發(fā)工程師深度閱讀。 ——秦磊◇某海外社交產(chǎn)品業(yè)務(wù)架構(gòu)負(fù)責(zé)人 本書深入探討了高并發(fā)系統(tǒng)設(shè)計(jì),從大廠的視角解讀技術(shù)棧選擇、高并發(fā)處理等核心內(nèi)容。無(wú)論是大廠的工程師,還是計(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í)作者對(duì)過(guò)往經(jīng)驗(yàn)的梳理和結(jié)構(gòu)化輸出方法。 ——叢小亮◇字節(jié)跳動(dòng)資深研發(fā)工程師
億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 內(nèi)容簡(jiǎn)介
本書講解億級(jí)流量系統(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)對(duì)高并發(fā)讀請(qǐng)求和寫請(qǐng)求時(shí)的通用處理手段,*后講解通用的服務(wù)治理手段以保障后臺(tái)高效運(yùn)行。基礎(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章),主要講解常見(jiàn)社交互動(dòng)場(chǎng)景中所需的核心服務(wù)的架構(gòu)設(shè)計(jì),包括內(nèi)容發(fā)布系統(tǒng)、通用計(jì)數(shù)系統(tǒng)、排行榜服務(wù)、用戶關(guān)系服務(wù)、Timeline Feed服務(wù)、評(píng)論服務(wù)和IM服務(wù)。
億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 目錄
第1章 大型互聯(lián)網(wǎng)公司的基礎(chǔ)架構(gòu) 2
1.1 引言:?jiǎn)螜C(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 域名解析過(guò)程 7
1.3 客戶端連接機(jī)房的技術(shù)2:HTTP DNS 9
1.3.1 DNS存在的問(wèn)題 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 注冊(cè)與發(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ù)庫(kù) 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ù)庫(kù) 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ā)場(chǎng)景分類 90
2.2 高并發(fā)讀場(chǎng)景方案1:數(shù)據(jù)庫(kù)讀/寫分離 91
2.2.1 讀/寫分離架構(gòu) 91
2.2.2 讀/寫請(qǐng)求路由方式 91
2.2.3 主從延遲與解決方案 92
2.3 高并發(fā)讀場(chǎng)景方案2:本地緩存 93
2.3.1 基本的緩存淘汰策略 93
2.3.2 W-TinyLFU策略 94
2.3.3 緩存擊穿與SingleFlight 95
2.4 高并發(fā)讀場(chǎng)景方案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ā)讀場(chǎng)景總結(jié):CQRS 105
2.5.1 CQRS的簡(jiǎn)要架構(gòu)與實(shí)現(xiàn) 106
2.5.2 更多的使用場(chǎng)景 107
2.5.3 CQRS架構(gòu)的特點(diǎn) 108
2.6 高并發(fā)寫場(chǎng)景方案1:數(shù)據(jù)分片之?dāng)?shù)據(jù)庫(kù)分庫(kù)分表 108
2.6.1 分庫(kù)和分表 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ā)寫場(chǎng)景方案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 重試控制:不重試的請(qǐng)求 131
3.2.5 重試控制:重試請(qǐng)求比 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 基于請(qǐng)求排隊(duì)時(shí)間 150
3.5.3 基于延遲比率 151
3.5.4 其他方案 152
3.6 降級(jí)策略 155
3.6.1 服務(wù)依賴度降級(jí) 155
3.6.2 讀請(qǐng)求降級(jí) 158
3.6.3 寫請(qǐng)求降級(jí) 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)遞增與趨勢(shì)遞增 167
4.2 單調(diào)遞增的唯一ID 168
4.2.1 Redis INCRBY命令 168
4.2.2 基于數(shù)據(jù)庫(kù)的自增主鍵 171
4.2.3 高可用架構(gòu) 172
4.3 趨勢(shì)遞增的唯一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ù)軉?wèn)題與解決方案 179
4.3.6 *終架構(gòu) 179
4.4 趨勢(shì)遞增的唯一ID:基于數(shù)據(jù)庫(kù)的自增主鍵 180
4.4.1 分庫(kù)分表架構(gòu) 181
4.4.2 批量緩存架構(gòu) 182
4.5 美團(tuán)點(diǎn)評(píng)開(kāi)源方案: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 非對(duì)稱加密 193
5.3.3 密碼加密存儲(chǔ) 194
5.4 手機(jī)號(hào)登錄和郵箱登錄 194
5.4.1 數(shù)據(jù)表設(shè)計(jì) 195
5.4.2 用戶注冊(cè) 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 長(zhǎng)短令牌方案 208
5.7 掃碼登錄 210
5.7.1 二維碼 210
5.7.2 掃碼登錄的場(chǎng)景介紹 211
5.7.3 掃碼登錄的技術(shù)實(shí)現(xiàn) 211
5.8 本章小結(jié) 213
第6章 海量推送系統(tǒng) 215
6.1 分布式長(zhǎng)連接服務(wù)的技術(shù)要素分析 216
6.1.1 WebSocket協(xié)議簡(jiǎn)介 216
6.1.2 長(zhǎng)連接服務(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 長(zhǎng)連接的建立過(guò)程 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平滑升級(jí)的問(wèn)題 227
6.2.9 pusher擴(kuò)容的問(wèn)題 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 審核中心的對(duì)外交互 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)資源訪問(wèn) 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ù)的常見(jiàn)用途 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ù)庫(kù)的困境 270
8.2.3 是否要使用關(guān)系型數(shù)據(jù)庫(kù) 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)對(duì)過(guò)熱數(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)用場(chǎ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的問(wèn)題 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ù)庫(kù)的設(shè)計(jì) 312
10.3.1 *初的想法 312
10.3.2 應(yīng)對(duì)分庫(kù)分表 313
10.3.3 Following表的索引設(shè)計(jì) 314
10.3.4 Follower表的索引設(shè)計(jì) 316
10.3.5 進(jìn)階:回表問(wè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ù)庫(kù)結(jié)合的*終方案 321
10.5 基于圖數(shù)據(jù)庫(kù)的設(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
億級(jí)流量系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn) 作者簡(jiǎn)介
李琛軒,高級(jí)技術(shù)專家,8年互聯(lián)網(wǎng)后臺(tái)開(kā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è)以來(lái)負(fù)責(zé)過(guò)多個(gè)知名產(chǎn)品的后臺(tái)開(kāi)發(fā)工作,相繼深耕于消息隊(duì)列、服務(wù)發(fā)現(xiàn)系統(tǒng)、服務(wù)治理、分布式事務(wù)、高并發(fā)架構(gòu)設(shè)計(jì)、全球多活等技術(shù)領(lǐng)域。
- >
龍榆生:詞曲概論/大家小書
- >
回憶愛(ài)瑪儂
- >
詩(shī)經(jīng)-先民的歌唱
- >
名家?guī)阕x魯迅:朝花夕拾
- >
苦雨齋序跋文-周作人自編集
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
經(jīng)典常談
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(紅燭學(xué)術(shù)叢書)