【实践课】手把手教你做系统设计

【实践课】手把手教你做系统设计

【实践课】手把手教你做系统设计

手把手教你做系统设计之秒杀系统

概述

本节课程主要分为四个方面:

  1. 系统设计方法论
  2. 电商秒杀业务介绍
  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压测

课中

引言

  • 为什么要做系统设计
    • 个人?
    • 工作?
  • 系统设计的概念是什么
  • 如何做系统设计
    • 4S分析法
  • 如何分析系统瓶颈和优化
    • 火焰图分析
    • 链路分析
    • 全链路压测
  • 如何验证系统的可用性和稳定性
    • 链路梳理
    • 可观测性
    • 全链路测试
    • 稳定性控制
    • 容灾演练

电商和秒杀

基本概念

  • Spu
  • Sku
  • 秒杀业务的特点

秒杀的挑战

  • 资源有限性
  • 反欺诈
  • 高性能
  • 防止超卖
  • 流量管控
  • 扩展性
  • 鲁棒性

设计秒杀系统

4S分析

  • 场景
  • 存储
  • 功能
  • 扩展

系统架构图

实践

秒杀流程

总结

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

课后

  • 秒杀课程的总结
  • 秒杀系统的扩展

【实践课】手把手教你做系统设计
https://zhangzhao219.github.io/2023/02/03/ByteDanceYouthTrainCamp/ByteDanceYouthTrainCamp-Day10/
作者
Zhang Zhao
发布于
2023年2月3日
许可协议