手把手教你做系统设计 | 青训营笔记

120 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

本篇笔记结合了预习的内容和上课课程内容

1.秒杀业务特点

所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。

秒杀业务特点:

  • 瞬时并发流量高
  • 读多写少:在电商系统中,库存数量往往会远远小于并发流量
  • 实时性高:秒杀结果需要尽快给与用户反馈,因此实时性要求很高

秒杀商品通常有两种限制:库存限制、时间限制。

需求设想: (1)录入秒杀商品数据

(2)列出秒杀商品,点击秒杀商品跳转详细页。

(3)商品详细页显示秒杀商品信息,点击立即抢购实现秒杀下单,下单时扣减库存。

(4)秒杀下单成功,直接跳转到支付页面,支付成功,跳转到成功页,完成订单。

(5)当用户秒杀下单5分钟内未支付,则关闭接口,恢复库存。

2.涉及到的技术:

MySQL、Redis、RocketMQ、OpenResty、Linux、Java、Jmeter等

3.概念

①系统设计含义

系统:关联的个体、规则运作、组成工作的整体

设计:设想和计划、目的、过程安排

②系统设计流程

场景设计->存储设计->服务设计->可扩展性

4.电商秒杀业务

电商秒杀业务有三个参与的实体:人(用户、消费者)、货(商品、商家)、场(线下商场、线上电商)

秒杀的挑战:高性能、资源成本、防止超卖、反欺诈、鲁棒性、扩展性、流量管控等

如何设计秒杀业务:

①场景

功能:秒杀活动发布、秒杀商品详情、秒杀下单

并发:万人参与秒杀、QPS 1w+、TPS 1k+

②存储:MySQL到Redis到lacalcache

③服务

子服务:用户服务、风控服务、活动服务、订单服务

基础组件:ID生成器、缓存组件、MQ组件、限流组件

④扩展:流量隔离、CDN、缓存优化、流量管控

⑤系统架构图

image.png

5.秒杀流程图

image.png