后端存储实战课 / 类电商平台存储技术应用指南
李玥
京东零售计算存储平台部资深架构师
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 从今天起,换种方式学存储

    存储是系统中最核心、最重要、最关键的组成部分,没有之一。

  • 课前加餐 | 电商系统是如何设计的?

    即使是一个最小化的电商系统,它仍然非常复杂。

  • 01 | 创建和更新订单时,如何保证数据准确无误?

    具有幂等性的服务可以完美地克服重试导致的数据错误。

  • 02 | 流量大、数据多的商品详情页系统该如何设计?

    这样的商品系统存储架构,把大部分请求都转移到了便宜速度又快的CDN服务器上,用少量的服务器和带宽资源抗住大量的并发请求。

  • 03 | 复杂而又重要的购物车系统,应该如何设计?

    购物车系统需要保存两类购物车,一类是未登录情况下的“暂存购物车”,一类是登录后的“用户购物车”。

  • 04 | 事务:账户余额总是对不上账,怎么办?

    事务可以保证在一个事务中执行的数据更新,要么都成功,要么都失败。

  • 05 | 分布式事务:如何保证多个系统间的数据是一致的?

    对于订单和优惠券这种需要强一致的分布式事务场景,可以采用2PC的方法来解决问题。

  • 06 | 如何用Elasticsearch构建商品搜索系统?

    Elasticsearch之所以能有非常好的全文搜索性能,最重要的原因就是采用了倒排索引。

  • 07|MySQL HA:如何将“删库跑路”的损失降到最低?

    高可用依赖的是数据复制,数据复制的本质就是从一个库备份数据,然后恢复到另外一个库中去。

  • 08 | 一个几乎每个系统必踩的坑儿:访问数据库超时

    在故障复盘阶段,除了对故障问题做有针对性的预防和改进以外,更重要的是,在系统架构层面进行改进,让整个系统更加健壮。

  • 09 | 怎么能避免写出慢SQL?

    在开发阶段,衡量一个SQL查询语句查询性能的手段是,估计执行SQL时需要遍历的数据行数。

  • 10 | 走进黑盒:SQL是如何在数据库中执行的?

    几乎所有的数据库,都是由执行器和存储引擎两部分组成,执行器负责执行计算,存储引擎负责保存数据。

  • 11 | MySQL如何应对高并发(一):使用缓存保护MySQL

    使用Redis作为MySQL的前置缓存,可以非常有效地提升系统的并发上限,降低请求响应时延。

  • 12 | MySQL如何应对高并发(二):读写分离

    主从同步延迟会导致主库和从库之间出现数据不一致的情况,应用程序应该能兼容主从延迟,避免因为主从延迟而导致的数据错误。

  • 13 | MySQL主从数据库同步是如何实现的?

    主从同步做数据复制时,一般可以采用几种复制策略。性能最好的方法是异步复制。

  • 14 | 订单数据越来越多,数据库越来越慢该怎么办?

    对于订单这类具有时间属性的数据,会随时间累积数据量越来越多,为了提升查询性能需要对数据进行拆分。

  • 15 | MySQL存储海量数据的最后一招:分库分表

    对MySQL这样的单机数据库来说,分库分表是应对海量数据和高并发的最后一招,分库分表之后,将会对数据查询有非常大的限制。

  • 16 | 用Redis构建缓存集群的最佳实践有哪些?

    为了能够保存更多的数据,Redis Cluster也是通过分片的方式,把数据分布到集群的多个节点上。

  • 17 | 大厂都是怎么做MySQL to Redis同步的?

    在处理超大规模并发的场景时,由于并发请求的数量非常大,即使少量的缓存穿透,也有可能打死数据库引发雪崩效应。

  • 18 | 分布式存储:你知道对象存储是如何保存图片文件的吗?

    很多新生代的存储系统,都是原生的分布式系统,它们一开始设计的目标之一就是分布式存储集群。

  • 19 | 跨系统实时同步数据,分布式事务是唯一的解决方案吗?

    对于海量数据,必须要按照查询方式选择数据库类型和数据的组织方式,才能达到理想的查询性能。

  • 20 | 如何在不停机的情况下,安全地更换数据库?

    设计在线切换数据库的技术方案,首先要保证安全性,确保每一个步骤一旦失败,都可以快速回滚。此外还要确保迁移过程中不丢数据。

  • 21 | 类似“点击流”这样的海量数据应该如何存储?

    对于海量原始数据的存储系统,我们要求的是超高的写入和读取性能,和近乎无限的容量,对于数据的查询能力要求不高。

  • 22 | 面对海量数据,如何才能查得更快?

    对于海量数据来说,选择存储系统没有银弹,重要的是转变思想。

  • 23 | MySQL经常遇到的高可用、分片问题,NewSQL是如何解决的?

    New SQL具备原生分布式存储系统高性能、高可靠、高可用和弹性扩容的能力,同时还兼顾了传统关系型数据的SQL支持。

  • 24 | RocksDB:不丢数据的高性能KV存储

    RocksDB在保证不错读性能的前提下,大幅地提升了写入性能,这主要得益于它的数据结构:LSM-Tree。

  • 结课测试 | 后端存储,100分试卷等你来挑战

    为了帮助你检测自己的学习效果,我特别给你准备了一套结课测试题。

  • 结束语 | 把奋斗当习惯

    我建议你在内心上尽快做一个转变。什么转变呢?从“凭什么要我做?”,到“愿意主动去多做事儿”,再到“把奋斗当做习惯”。

11.11 限时大促

全场课程 5.5 折,新人首单 1 元

订阅后分享海报给朋友,邀请成功最多可得 36 元

你将获得

  • 电商存储中的24个高频问题解决方案
  • 不同业务场景下的存储选型策略
  • 分布式存储领域的前沿技术
  • 存储技术核心原理的深入剖析

讲师介绍

李玥,《消息队列高手课》作者,京东零售计算存储平台部资深架构师,他在流数据的一致性分发和可靠存储、分布式实时计算、高可用分布式系统架构等领域都有着丰富的实战经验。

课程介绍

职业生涯中,你会接触不同类型的业务系统,它们规模各异,研发过程中的问题也五花八门,但却有一个神奇的规律:

凡是那些特别难解决的、让你付出巨大代价的,或者是损失惨重的技术问题,几乎都可以归为存储系统的问题。

但这其实并不意外,不管你的系统业务是什么样的,最终都要落到对数据的管理上,只要最终的“数据”是正确的,剩下的都是小问题;数据错了、丢了,甚至数据处理不及时,这些都是损失惨重的大问题,因此可以说:存储是系统中最核心、最重要、最关键的组成部分,没有之一。

然而,学习并精通存储,并不是一件容易的事。存储涉及很多理论概念,比如各种数据结构、哈希、树以及它们的时间复杂度等等,这些知识往往偏数学范畴,不易理解和记忆。此外,理论和实践之间往往又存在着鸿沟,现实中常常是“懂了一堆道理,却还是写不好代码”。

所以,我们邀请了李玥老师,以实战和案例的方式来讲存储场景。在这个课程中,李玥会以电商不同发展阶段的场景为蓝本,每节课解决一两个大家都会遇到的实际问题,在解题的过程中带你学习相关的存储知识和原理。这样,既可以帮你快速地解决实际问题,还能带你从实战中真正学透存储。

模块介绍

本课程包括三个模块,分别是创业篇、高速增长篇、海量数据篇。

  • 创业篇,带你解决电商系统从0到1过程中遇到的存储问题。比如,如何低成本高质量地快速构建一个小规模的订单存储系统。
  • 高速增长篇,关注在高速变化的过程中,你的系统一定会遇到的一些共通问题及其应对方式。比如,如何从单机的存储系统逐步演进为分布式存储系统,如何在线平滑地扩容我们的存储系统。
  • 海量数据篇,重点解决高并发、海量数据情况下的存储系统该如何设计的问题。比如,海量的埋点数据该怎么存储,如何在各种数据库之间实时地迁移和同步海量数据,等等。

课程目录

特别放送

订阅须知