【实践课】手把手教你做系统设计 | 青训营笔记

82 阅读2分钟

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

本节课重点内容

  • 系统设计方法论
  • 电商秒杀业务介绍
  • 课程实践

本节课详细内容

课前主要讲了课程中涉及到的中间件和背景知识。

  • MYSQL
  • Redis
  • RocketMQ
  • OpenResty
  • Linux
  • Java
  • Jmeter

系统设计的概念是什么

  • 系统设计的定义:为了达成某种目的,通过个体组成整体的过程

    • 系统:关联的个体;规则运作;组成工作的整体
    • 设计:设想和计划;目的;过程安排

如何做系统设计

  • 场景分析

    什么系统,需要哪些功能,多大的并发量

  • 存储设计

    数据如何组织,使用sql还是nosql

  • 服务设计

    业务功能如何实现

  • 可扩展性

    提高鲁棒性,可拓展性

发现系统瓶颈的方法

  • 火焰图分析
  • 链路追踪
  • 性能测试

电商秒杀业务的介绍

特点: 瞬时流量高;读多写少;实时性要求高

挑战:资源成本;高性能;防止超卖;反欺诈;流量管控;鲁棒性(就是代码的错误预防能力);扩展性

如何设计一个秒杀系统?

场景

  • 功能:活动发布、秒杀商品详情、秒杀下单
  • 并发:参与人数多、QPS高

存储

  • 多级缓存
  • 分库分表

服务

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

拓展方向:

  • 流量隔离

  • CDN

  • 缓存优化

  • 流量管控

  • 数据库拓展

  • MQ拓展

  • Redis拓展

  • 服务水平拓展

  • 服务垂直拓展

服务中间根据GO语言的测试方法测出CPU占用率,进行数据结构优化

引用

「【实践课】手把手教你做系统设计」第五届字节跳动青训营 - 后端专场 (juejin.cn)

‌‌⁣⁡⁣‬‬⁢⁣‍‌‍⁢‬⁢⁣⁣‍⁡‬⁤⁤‬⁤⁡⁣‬⁡‬⁣‬⁡⁣手把手教你做系统设计之秒杀系统 .pptx - 飞书云文档 (feishu.cn)