系统设计之秒杀系统 | 青训营笔记

126 阅读2分钟

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

今天的课程是一个电商秒杀系统的实践课程,这次课程还是十分有意义的,讲述了如何进行系统设计,并且给出了电商秒杀系统的设计案例。下面是我对今天课程的总结和心得,希望能够对大家有所帮助。

课程重点内容

今天课程的内容介绍如下:

  • 系统设计方法
  • 电商秒杀业务介绍
  • 电商秒杀系统实践
  • 课程总结(最后实践系统出现了缓存和数据库数据不一致的情况,作为课后思考会下次讲解)

知识点介绍

评估一个系统可以从可用性、安全性、扩展性、耦合性等等方面来进行评估。而我们进行系统设计就是将个体组成我们想要的系统的过程。

系统设计的大致流程可以分为四步(也叫4S分析法):

  • 1、首先是场景分析:分析系统需要的功能,需要多大的并发量。
  • 2、存储设计:分析系统的数据应该如何组织,常用的有SQL存储和NoSql存储。
  • 3、服务设计:对业务功能实现和逻辑整合。
  • 4、可扩展性:分析系统的鲁棒性和可扩展性,解决设计缺陷。

系统设计之后还要对其进行大量的测试和链路梳理等来保证其可用性和稳定性。

课程按照4S分析法对电商秒杀业务进行了分析,这里简单总结。

1、场景分析:

  • 需要实现的功能如下
    • 秒杀活动发布
    • 秒杀商品详情
    • 秒杀下单
  • 并发量:
    • 万人参与秒杀
    • QOS 1W+
    • TPS 1K+

2、存储设计:存储上采用了MySql数据库 + Redis缓存 + 本地缓存的设计。具体的数据库设计大家可以去项目中查看。

3、服务设计:

  • 子服务:
    • 用户服务
    • 风控服务
    • 活动服务
    • 订单服务
  • 基础组件:
    • ID生成器
    • 缓存组件
    • MQ组件
    • 限流组件

4、扩展分析:有流量隔离、数据库扩展、MQ扩展等,水平有限,这里不过多介绍。

课后总结

关于具体的项目大家可以去课程中查看,项目十分具有学习价值,项目用到了MySQL Redis RocketMQ OpenResty等。十分建议大家课后将实践项目部署并阅读一下,可以更清楚的了解系统设计,会对自己项目方面有很大的提高。