【实践课】手把手教你做系统设计
【实践课】手把手教你做系统设计
【实践课】手把手教你做系统设计
手把手教你做系统设计之秒杀系统
概述
本节课程主要分为四个方面:
- 系统设计方法论
- 电商秒杀业务介绍
- 课程实践
- 课程总结
课前部分主要罗列课程中涉及到的中间件和相关背景知识。对于使用到的中间件,同学们需要体验了解概念,安装并正确使用。课中部分会详细讲解系统设计的方法论和秒杀系统实践,帮助同学们入门系统设计。课后部分会做一些总结,梳理核心思想和重点。
课前 (必须)
了解基本的电商概念和流程
- 电商平台业务
- 秒杀业务特点
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压测
课中
引言
- 为什么要做系统设计
- 个人?
- 工作?
- 系统设计的概念是什么
- 如何做系统设计
- 4S分析法
- 如何分析系统瓶颈和优化
- 火焰图分析
- 链路分析
- 全链路压测
- 如何验证系统的可用性和稳定性
- 链路梳理
- 可观测性
- 全链路测试
- 稳定性控制
- 容灾演练
电商和秒杀
基本概念
- Spu
- Sku
- 秒杀业务的特点
秒杀的挑战
- 资源有限性
- 反欺诈
- 高性能
- 防止超卖
- 流量管控
- 扩展性
- 鲁棒性
设计秒杀系统
4S分析
- 场景
- 存储
- 功能
- 扩展
系统架构图
实践
秒杀流程
总结
高性能系统的通用设计思想
课后
- 秒杀课程的总结
- 秒杀系统的扩展
【实践课】手把手教你做系统设计
https://zhangzhao219.github.io/2023/02/03/ByteDanceYouthTrainCamp/ByteDanceYouthTrainCamp-Day10/