这是我参与「第五届青训营 」伴学笔记创作活动的第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处理,接到返回值,再传给页面。
业务逻辑:``` Controller-->service接口-->serviceImpl-->dao接口-->daoImpl-->mapper-->db
三、其他
本节课了解了电商平台业务以及秒杀业务特点,补充了DAO、Service、Controller层知识。