店鋪:機械工業出版社官方旗艦店 出版社:機械工業出版社 ISBN:9787111697411 商品編碼:10042875408598 品牌:機械工業出版社(CMP) 頁數:240 字數:100000 審圖號:9787111697411 作者:李玥
" 內容簡介 本書將以電商應用場景為例,講解不同規模的存儲繫統應該如何構建。本書的章節是按照繫統的發展過程來設計,分成了設計篇、高速增長篇、海量數據篇和技術進階篇。在設計篇中,重點介紹如何從0到1地設計電商繫統的各個存儲架構。在高速增長篇中,重點關注在高速變化的過程中繫統所遇到的共通性問題,以及應對這些問題的方法。在海量數據篇中,重點解決高並發、海量數據情況下的存儲繫統應該如何設計的問題。在技術進階篇中,重點探討在存儲技術領域,有哪些新技術值得關注,哪些技術可能成為未來的發展趨勢。畢@,不斷創新是技術發展的原動力。 目錄 前言換一種方式學習存儲繫統 *一篇設計 *1章如何設計電商繫統 3 1.1設計電商繫統的核心流程 4 1.2根據流程劃分功能模塊 6 1.3小結 9 1.4思考題 10 *2章訂單繫統的設計:確保訂單數據的準確性 11 2.1訂單繫統的核心功能和數據 12 2.2如何避免重復下單 13 2.3如何解決ABA問題 16 2.4小結 18 2.5思考題 19 第3章商品繫統的存儲架構設計 20 3.1商品繫統需要保存哪些數據 21 3.2如何存儲商品的基本信息 22 3.3使用MongoDB保存商品參數 23 3.4使用對像存儲保存圖片和視頻 24 3.5將商品介紹靜態化 25 3.6小結 26 3.7思考題 28 第4章購物車繫統的存儲架構:前後端混合存儲 29 4.1設計購物車繫統的存儲架構時需要把握什麼原則 30 4.2如何設計“暫存購物車”的存儲 32 4.3如何設計“用戶購物車”的存儲 34 4.4小結 36 4.5思考題 37 第5章賬戶繫統:用事務解決對賬問題 38 5.1為什麼總是對不上賬 39 5.2使用數據庫事務保證數據的一致性 40 5.3理解事務的隔離級別 42 5.4小結 49 5.5思考題 50 第6章分布式事務:保證多個繫統間的數據一致 51 6.1什麼是分布式事務 52 6.22PC:訂單與優惠券的數據一致性問題 53 6.3本地消息表:訂單與購物車的數據一致性問題 57 6.4小結 59 6.5思考題 59 第7章用Elasticsearch構建商品搜索繫統 60 7.1理解倒排索引機制 60 7.2如何在ES中構建商品的索引 63 7.3小結 67 7.4思考題 68 第8章備份與恢復 69 8.1如何更安全地實現數據備份和恢復 70 8.2配置MySQL HA實現高可用性 73 8.3小結 75 8.4思考題 76 *二篇高速增長 第9章優化SQL 79 9.1每個繫統必踩的“坑”:訪問數據庫超時 79 9.1.1事故排查過程 79 9.1.2如何避免悲劇重演 85 9.1.3小結 87 9.1.4思考題 88 9.2如何避免寫出“慢SQL” 88 9.2.1定量認識MySQL 88 9.2.2使用索引避免全表掃描 90 9.2.3分析SQL執行計劃 92 9.2.4小結 93 9.2.5思考題 94 9.3SQL在數據庫中的執行 94 9.3.1SQL在執行器中是如何執行的 95 9.3.2SQL在存儲引擎中是如何執行的 98 9.3.3小結 100 9.3.4思考題 101 *10章MySQL應對高並發 102 10.1使用緩存保護MySQL 102 10.1.1更新緩存的*佳方式 103 10.1.2注意避免緩存穿透引起雪崩 105 10.1.3小結 107 10.1.4思考題 107 10.2讀寫分離 107 10.2.1讀寫分離是提升MySQL並發能力的*選方案 108 10.2.2注意讀寫分離帶來的數據不一致問題 111 10.2.3小結 112 10.2.4思考題 113 10.3實現MySQL主從數據庫同步 113 10.3.1如何配置MySQL的主從同步 113 10.3.2復制狀態機:所有分布式存儲都是這樣復制數據的 116 10.3.3小結 117 10.3.4思考題 118 第三篇海量數據 *11章MySQL應對海量數據 121 11.1歸檔歷史數據 121 11.1.1存檔歷史訂單數據提升查詢性能 122 11.1.2如何批量刪除大量數據 124 11.1.3小結 127 11.1.4思考題 128 11.2分庫分表 128 11.2.1如何規劃分庫分表 129 11.2.2如何選擇分片鍵 130 11.2.3如何選擇分片算法 131 11.2.4小結 133 11.2.5思考題 134 *12章緩存海量數據 135 12.1用Redis構建緩存集群的*佳實踐 135 12.1.1Redis Cluster如何應對海量數據、高可用和高並發問題 136 12.1.2為什麼Redis Cluster不適合超大規模集群 138 12.1.3如何用Redis構建超大規模集群 139 12.1.4小結 141 12.1.5思考題 142 12.2大型企業如何實現MySQL到Redis的同步 142 12.2.1緩存穿透:超大規模繫統的不能承受之痛 142 12.2.2使用Binlog實時更新Redis緩存 144 12.2.3小結 149 12.2.4思考題 150 12.3基於Binlog實現跨繫統實時數據同步 150 12.3.1使用Binlog和消息隊列構建實時數據同步繫統 151 12.3.2如何保證數據同步的實時性 152 12.3.3小結 154 12.3.4思考題 154 *13章更換數據庫 155 13.1如何實現不停機更換數據庫 155 13.2如何實現比對和補償程序 158 13.3小結 160 13.4思考題 160 *14章對像存儲:*簡單的分布式存儲繫統 161 14.1對像存儲數據是如何保存大文件的 162 14.2如何拆分和保存大文件對像 163 14.3小結 166 14.4思考題 167 *15章海量數據的存儲與查詢 168 15.1如何存儲前端埋點之類的海量數據 168 15.1.1使用Kafka存儲海量原始數據 169 15.1.2使用HDFS存儲更大規模的數據 171 15.1.3小結 173 15.1.4思考題 173 15.2面對海量數據,如何纔能查得更快 173 15.2.1常用的分析類繫統應該如何選擇存儲 174 15.2.2轉變思想:根據查詢選擇存儲繫統 176 15.2.3小結 178 15.2.4思考題 178 *16章存儲繫統的技術選型 179 16.1技術選型時應該考慮哪些因素 180 16.2在線業務繫統如何選擇存儲產品 182 16.3分析繫統如何選擇存儲產品 183 16.4小結 183 16.5思考題 184 第四篇技術展望 *17章使用NewSQL解決高可用和分片難題 187 17.1什麼是NewSQL 187 17.2CockroachDB如何實現數據分片和彈性擴容 188 17.3CockroachDB能提供金融級的事務隔離性嗎 190 17.4小結 193 17.5思考題 193 *18章RocksDB:不丟數據的高性能KV存儲 194 18.1同樣是KV存儲,RocksDB有哪些不同 195 18.2LSM-Tree如何兼顧讀寫性能 196 18.3小結 199 18.4思考題 199 附錄A測試題及解析 200 附錄B思考題解析 206 後記讓奮鬥成為習慣 219
" |