系统设计 | 青训营笔记

80 阅读2分钟

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

一、课程目录

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

二、课程内容

1、如何做系统设计

  • 场景分析(Scenario)
  • 存储设计(Storage)
  • 服务设计(Service)
  • 可扩展性(Scale)

2、如何发现系统的瓶颈

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

3、秒杀的挑战

资源成本、反欺诈、高性能、防止超卖、流量管控、扩展性、鲁棒性

4、如何设计秒杀系统

  • 场景

    • 功能
      • 活动发布
      • 商品详情
      • 秒杀下单
    • 并发
      • 万人参与
      • QPS 1w+
      • TPS 1k+
  • 存储

    • MySQL -> Redis -> Localcache
    • 数据库表
  • 服务

    • 子服务

      • 用户服务
      • 风控服务
      • 活动服务
      • 订单服务
    • 基础组件

      • ID生成器
      • 缓存组件
      • MQ组件
      • 限流组件
  • 扩展

    • 流量隔离
    • 缓存优化
    • 流量管控
    • CDN

DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

Service层: Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

Controller层: controller是为前端提供的访问入口,不用关心具体的业务逻辑。具体的业务逻辑放在了serviceImpl里,controller只需调用它封装好的方法即可。Controller负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

参考:blog.csdn.net/qq_22771739…

业务逻辑:``` Controller-->service接口-->serviceImpl-->dao接口-->daoImpl-->mapper-->db

三、其他

本节课了解了电商平台业务以及秒杀业务特点,补充了DAO、Service、Controller层知识。