本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
书名: | 电商存储系统实战:架构设计与海量数据处理|8085074 |
图书定价: | 89元 |
图书作者: | 李玥 |
出版社: | 机械工业出版社 |
出版日期: | 2021/12/16 0:00:00 |
ISBN号: | 9787111697411 |
开本: | 16开 |
页数: | 238 |
版次: | 1-1 |
内容简介 |
本书将以电商应用场景为例,讲解不同规模的存储系统应该如何构建。本书的章节是按照系统的发展过程来设计,分成了设计篇、高速增长篇、海量数据篇和技术进阶篇。在设计篇中,重点介绍如何从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.2 2PC:订单与优惠券的数据一致性问题 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.3 SQL在数据库中的执行 94 9.3.1 SQL在执行器中是如何执行的 95 9.3.2 SQL在存储引擎中是如何执行的 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并发能力的shouxuan方案 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.1 Redis 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.2 CockroachDB如何实现数据分片和弹性扩容 188 17.3 CockroachDB能提供金融级的事务隔离性吗 190 17.4 小结 193 17.5 思考题 193 第18章 RocksDB:不丢数据的高性能KV存储 194 18.1 同样是KV存储,RocksDB有哪些不同 195 18.2 LSM-Tree如何兼顾读写性能 196 18.3 小结 199 18.4 思考题 199 附录A 测试题及解析 200 附录B 思考题解析 206 后记 让奋斗成为习惯 219 |
编辑推荐 |
电商 存储系统实战 李玥◎著 架构设计与海量数据处理 基于实战案例系统地讲解电商系统的存储设计, 详细分析不同规模存储系统的构建方法 每章解决一两个实战中的高频问题, 帮你快速应对各种电商存储系统难题,深入理解存储系统知识和原理 E-COMMERCE STORAGE SYSTEM IN ACTION Architecture Design and Massive Data Processing |