系统设计之秒杀系统(2月5日) | 青训营笔记

149 阅读2分钟

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

一、本堂课重点内容:

1. 系统设计方法论
2. 电商秒杀业务介绍
3. 课程实践
4. 课程总结

二、详细知识点介绍:

1. 系统设计方法论
  • 为什么要做系统设计

    • 个人?
    • 工作?
  • 系统设计的概念是什么

  • 如何做系统设计

    • 4S分析法
  • 如何分析系统瓶颈和优化

    • 火焰图分析
    • 链路分析
    • 全链路压测
  • 如何做系统设计

    • 场景分析(Scenario)
    • 存储设计(Storage)
    • 服务设计(Service)
    • 可拓展性(Scale)
  • 如何验证系统的可用性和稳定性

    • 链路梳理

    • 可观测性

    • 全链路测试

    • 稳定性控制

    • 容灾演练

2. 电商秒杀业务介绍
基本概念
  • Spu
  • Sku
  • 秒杀业务的特点
秒杀的挑战
  • 资源有限性
  • 反欺诈
  • 高性能
  • 防止超卖
  • 流量管控
  • 扩展性
  • 鲁棒性
设计秒杀系统
4S分析
  • 场景
  • 存储
  • 功能
  • 扩展
系统架构图

3. 课程实践
秒杀流程

4. 课程总结

高性能系统的通用设计思想

三、实践练习例子

MySQL
  • 安装MySQL,推荐使用MySQL8及以上版本
  • 熟悉ddl,dml等基础语法
  • 了解sql优化
Redis
  • 安装Redis,推荐最新版本
  • 了解Redis的基本数据类型和使用场景
  • 熟悉常用命令
  • 了解Lua脚本的使用
  • 了解Redis分布式锁
RocketMQ
  • 安装RocketMQ,推荐最新版本
  • 了解RocketMQ的基础概念和架构
  • 了解MQ的使用场景
  • 了解生产者如何保证消息的可靠性发送
  • 了解消费者如何保证幂等
  • 了解消费者pull和push模式的区别
OpenResty
  • 安装OpenResty,推荐最新版本
  • 了解Nginx的基础概念和使用
  • 了解Lua脚本的语法
Linux
  • 熟悉常用命令
  • 熟悉进程和线程
  • 了解Linux调优
Java
  • 按照JDK,推荐JDK11
  • 熟悉Java基础语法和lambda表达式
  • 熟悉idea的使用
  • 了解并发编程
  • 了解springboot框架的使用
  • 了解maven的使用
Jmeter
  • 安装Jmeter

  • 了解使用Jmeter压测

四、课后个人总结:

经过本次课程的学习,我了解了系统设计,通过案例(电商秒杀系统的设计),我学到了很多有用的知识,也熟悉到了一些组件,在今后的学习中,我将学习更多的知识,丰富自己的思想。

五、引用参考: