| 失效鏈接處理 |
|
億級流量 系統(tǒng)架構(gòu)設(shè)計與實戰(zhàn) 李琛軒 PDF 下載
下載地址:
版權(quán)歸出版社和原作者所有,鏈接已刪除,請購買正版
用戶下載說明:
電子版僅供預(yù)覽,下載后24小時內(nèi)務(wù)必刪除,支持正版,喜歡的請購買正版書籍:
https://product.dangdang.com/11740917689.html
相關(guān)截圖: ![]() 資料內(nèi)容: 本書講解億級流量系統(tǒng)架構(gòu)的設(shè)計方法及實戰(zhàn)經(jīng)驗,在內(nèi)容結(jié)構(gòu)上分為三大篇:架構(gòu)知識篇(第1~3章),主要講解海量用戶應(yīng)用后臺的組成結(jié)構(gòu)、高并發(fā)處理和服務(wù)可用性障,先講解后臺由哪些關(guān)鍵組件構(gòu)成及機房搭建思路,然后講解后臺在應(yīng)對高并發(fā)讀請求和寫請求時的通用處理手段,后講解通用的服務(wù)治理手段以障后臺高效運行。基礎(chǔ)服務(wù)設(shè)計篇(第4~6章),主要講解幾個基礎(chǔ)服務(wù)的架構(gòu)設(shè)計,這里選取的基礎(chǔ)服務(wù)幾乎為所有互聯(lián)網(wǎng)后臺所需的門系統(tǒng),括分布式ID生成器、用戶登錄服務(wù)和海量消息推送系統(tǒng);核心服務(wù)設(shè)計篇(第7~13章),主要講解常見社交互動場景中所需的核心服務(wù)的架構(gòu)設(shè)計,括內(nèi)容發(fā)布系統(tǒng)、通用計數(shù)系統(tǒng)、排行榜服務(wù)、用戶關(guān)系服務(wù)、Timeline Feed服務(wù)、服務(wù)和IM服務(wù)。 資料目錄: 架構(gòu)知識篇 第1章 大型互聯(lián)網(wǎng)公司的基礎(chǔ)架構(gòu) 2 1.1 引言:單機房的內(nèi)架構(gòu) 2 1.2 客戶端連接機房的技術(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 客戶端連接機房的技術(shù)2:HTTP DNS 9 1.3.1 DNS存在的問題 9 1.3.2 HTTP DNS的原理 10 1.3.3 HTTP DNS實踐 11 1.4 接入層的技術(shù)演進 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 存儲層技術(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 存儲層技術(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 存儲層技術(shù):LSM Tree 53 1.9.1 LSM Tree的原理 53 1.9.2 讀/寫數(shù)據(jù)流程 56 1.10 存儲層技術(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 多機房:主備機房 69 1.13 多機房:同城雙活 71 1.13.1 存儲層改造 71 1.13.2 靈活實施 73 1.13.3 分流與故障切流 74 1.13.4 兩地三中心 77 1.14 多機房:異地多活 78 1.14.1 架構(gòu)要點 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è)計 88 2.1 高并發(fā)架構(gòu)設(shè)計的要點 88 2.1.1 形成高并發(fā)系統(tǒng)的要條件 88 2.1.2 高并發(fā)系統(tǒng)的衡量指標 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)與實現(xiàn) 106 2.5.2 更多的使用場景 107 2.5.3 CQRS架構(gòu)的點 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 擴容方案 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 重試時機 130 3.2.3 重試風(fēng)險與重試風(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 艙壁隔離的實現(xiàn) 138 3.4 限流 139 3.4.1 頻控 140 3.4.2 單機限流1:時間窗口 141 3.4.3 單機限流2:漏桶算法 143 3.4.4 單機限流3:令牌桶算法 144 3.4.5 全局限流 146 3.5 自適應(yīng)限流 148 3.5.1 服務(wù)與等待隊列 149 3.5.2 基于請求排隊時間 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è)計篇 第4章 ID生成器 164 4.1 分布式ID 164 4.1.1 全局與UUID 164 4.1.2 ID生成器的點 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:基于時間戳 174 4.3.1 正確使用時間戳 174 4.3.2 Snowflake算法 175 4.3.3 Snowflake算法的靈活應(yīng)用 175 4.3.4 分配服務(wù)實例ID 177 4.3.5 時鐘回撥問題與解決方案 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 美團點評開源方案:Leaf 183 4.5.1 Leaf-segment方案 183 4.5.2 Leaf-snowflake方案 185 4.6 本章小結(jié) 187 第5章 用戶登錄服務(wù) 189 5.1 用戶賬號 189 5.2 用戶登錄服務(wù)的功能要點 190 5.3 密碼護 192 5.3.1 使用HTTPS通信 192 5.3.2 非對稱加密 193 5.3.3 密碼加密存儲 194 5.4 手機號登錄和郵箱登錄 194 5.4.1 數(shù)據(jù)表設(shè)計 195 5.4.2 用戶注冊 195 5.4.3 用戶登錄 196 5.4.4 手機號一鍵登錄 197 5.5 第三方登錄 199 5.5.1 OAuth 2標準 200 5.5.2 客戶端接入第三方登錄 201 5.5.3 服務(wù)端接入第三方登錄 202 5.5.4 第三方登錄的完整流程總結(jié) 203 5.6 登錄態(tài)管理 204 5.6.1 存儲型方案:Session 205 5.6.2 計算型方案:令牌 207 5.6.3 長短令牌方案 208 5.7 掃碼登錄 210 5.7.1 二維碼 210 5.7.2 掃碼登錄的場景介紹 211 5.7.3 掃碼登錄的技術(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è)計 220 6.2.1 整體架構(gòu)設(shè)計 220 6.2.2 長連接的建立過程 221 6.2.3 消息格式設(shè)計 222 6.2.4 消息推送接口 223 6.2.5 單點消息推送的細節(jié) 224 6.2.6 全局消息推送的細節(jié) 225 6.2.7 多點消息推送的細節(jié) 226 6.2.8 pusher平滑升級的問題 227 6.2.9 pusher擴容的問題 236 6.3 本章小結(jié) 237 核心服務(wù)設(shè)計篇 第7章 內(nèi)容發(fā)布系統(tǒng) 240 7.1 內(nèi)容發(fā)布系統(tǒng)的設(shè)計背景 240 7.2 內(nèi)容存儲設(shè)計 241 7.2.1 內(nèi)容數(shù)據(jù)的存儲 241 7.2.2 內(nèi)容元信息的存儲 243 7.2.3 內(nèi)容主體的存儲選型 244 7.2.4 音視頻轉(zhuǎn)碼 245 7.3 內(nèi)容審核設(shè)計 246 7.3.1 內(nèi)容審核的要性 246 7.3.2 內(nèi)容的審核時機策略 246 7.3.3 如何審核內(nèi)容 247 7.3.4 審核中心的對外交互 249 7.4 內(nèi)容的全生命周期管理設(shè)計 250 7.4.1 內(nèi)容的創(chuàng)建設(shè)計 250 7.4.2 內(nèi)容的修改設(shè)計 252 7.4.3 內(nèi)容審核結(jié)果處理與版本控制設(shè)計 254 7.4.4 內(nèi)容的刪除與下架設(shè)計 256 7.5 內(nèi)容分發(fā)設(shè)計 256 7.5.1 內(nèi)容分發(fā)渠道 256 7.5.2 何時通知分發(fā)渠道 257 7.5.3 將內(nèi)容投遞到分發(fā)渠道 257 7.6 內(nèi)容展示設(shè)計 258 7.6.1 內(nèi)容數(shù)據(jù)的點 259 7.6.2 使用CDN加速靜態(tài)資源訪問 259 7.6.3 使用緩存和多副本支撐高并發(fā)讀取 260 7.6.4 內(nèi)容展示流程設(shè)計 263 7.7 完整架構(gòu)總覽 265 7.8 本章小結(jié) 267 第8章 通用計數(shù)系統(tǒng) 268 8.1 計數(shù)的常見用途 268 8.2 如何存儲計數(shù)數(shù)據(jù) 269 8.2.1 計數(shù)數(shù)據(jù)的點 269 8.2.2 關(guān)系型數(shù)據(jù)庫的困境 270 8.2.3 是否要使用關(guān)系型數(shù)據(jù)庫 270 8.2.4 使用Redis存儲計數(shù)數(shù)據(jù) 271 8.3 海量計數(shù)服務(wù)設(shè)計 272 8.3.1 Redis數(shù)據(jù)類型 272 8.3.2 計數(shù)累計與讀取的示例 274 8.3.3 化內(nèi)存的調(diào)研 274 8.3.4 化內(nèi)存:定制化Redis 276 8.3.5 冷熱數(shù)據(jù)分離 279 8.3.6 應(yīng)對過熱數(shù)據(jù) 280 8.3.7 計數(shù)服務(wù)架構(gòu)圖 281 8.3.8 計數(shù)服務(wù)的適用范圍 282 8.4 本章小結(jié) 283 第9章 排行榜服務(wù) 284 9.1 排行榜的應(yīng)用場景 284 9.2 排行榜技術(shù)的點 285 9.3 使用Redis實現(xiàn)排行榜 285 9.3.1 使用Redis ZSET 286 9.3.2 冪等更新 287 9.3.3 同積分排名處理 289 9.3.4 服務(wù)設(shè)計 291 9.3.5 關(guān)于大Key的問題 295 9.4 粗估排行榜的實現(xiàn) 296 9.4.1 線段樹 296 9.4.2 粗估排名的實現(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è)計 311 10.3 基于數(shù)據(jù)庫的設(shè)計 312 10.3.1 初的想法 312 10.3.2 應(yīng)對分庫分表 313 10.3.3 Following表的索引設(shè)計 314 10.3.4 Follower表的索引設(shè)計 316 10.3.5 進:回表問題與化 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è)計 323 10.5.1 實現(xiàn)用戶關(guān)系 323 10.5.2 應(yīng)用權(quán)衡 327 10.6 本章小結(jié) 328 第11章 Timeline Feed服務(wù) 330 11.1 Feed流的分類 330 11.2 Timeline Feed流的功能性 331 11.3 拉模式與用戶發(fā)件箱 331 11.4 推模式與用戶收件箱 333 11.5 推拉結(jié)合模式 334 11.5.1 結(jié)合思路 334 11.5.2 區(qū)分活躍用戶 335 11.6 實現(xiàn)Timeline Feed服務(wù)的關(guān)鍵技術(shù)細節(jié) 336 11.6.1 內(nèi)容與用戶收件箱的交互 336 11.6.2 推送子任務(wù) 338 11.6.3 收件箱存什么數(shù)據(jù) 339 11.6.4 讀請求參數(shù) 340 11.6.5 使用數(shù)據(jù)庫實現(xiàn)收件箱 340 11.6.6 使用Redis ZSET實現(xiàn)收件箱 343 11.6.7 通過推拉結(jié)合模式構(gòu)建Timeline Feed數(shù)據(jù) 348 11.6.8 收尾工作 355 11.7 本章小結(jié) 356 第12章 服務(wù) 357 12.1 功能 357 12.2 列表模式 358 12.3 服務(wù)設(shè)計的初步想法 361 12.4 單級模式服務(wù)設(shè)計 361 12.4.1 數(shù)據(jù)表的初步設(shè)計 361 12.4.2 讀/寫接口與索引 362 12.4.3 數(shù)據(jù)庫的設(shè)計 363 12.4.4 高并發(fā)問題 364 12.5 蓋樓模式服務(wù)設(shè)計 366 12.5.1 數(shù)據(jù)庫方案:遞歸查詢 366 12.5.2 數(shù)據(jù)庫方案:存完整樓層 368 12.5.3 圖數(shù)據(jù)庫方案 369 12.6 二級模式服務(wù)設(shè)計 370 12.6.1 數(shù)據(jù)點 371 12.6.2 時間順序:數(shù)據(jù)庫方案 371 12.6.3 時間順序:圖數(shù)據(jù)庫方案 373 12.6.4 審核與狀態(tài) 376 12.6.5 按照熱度排序 377 12.6.6 高并發(fā)處理 381 12.6.7 架構(gòu)總覽 385 12.7 本章小結(jié) 386 第13章 IM服務(wù) 388 13.1 IM的意義與核心 388 13.2 IM相關(guān)概念 389 13.3 消息投遞 390 13.3.1 存儲消息:讀擴散與寫擴散 390 13.3.2 接收消息:拉模式與推模式 393 13.4 存儲初探 395 13.5 消息的有序性證 396 13.5.1 消息亂序 396 13.5.2 客戶端發(fā)送消息 396 13.5.3 服務(wù)端存儲消息 397 13.5.4 服務(wù)端推送消息與客戶端補償 398 13.6 會話管理與命令消息 401 13.6.1 創(chuàng)建單聊會話 402 13.6.2 創(chuàng)建群聊會話 402 13.6.3 命令消息 403 13.7 消息回執(zhí) 404 13.7.1 上報已讀消息 404 13.7.2 記錄已讀消息 404 13.8 段性匯總:存儲設(shè)計 405 13.9 高并發(fā)架構(gòu) 408 13.9.1 發(fā)送消息 409 13.9.2 數(shù)據(jù)緩存 409 13.9.3 消息分級 410 13.9.4 直播間彈幕模式 411 13.10 本章小結(jié):架構(gòu) 413 |




蘇公網(wǎng)安備 32061202001004號


