这是我参与「第五届青训营 」笔记创作活动的第 10 天
本节课是实战课,做系统设计,主要是代码讲解
本节课重点:系统设计方法论
本节课难点:电商秒杀业务、课程实践
1、系统设计方法论
1.1 系统设计标准流程
场景分析->存储设计->服务设计->可拓展性
1.1.1 发现系统瓶颈
火焰图分析、链路追踪、性能测试
1.1.2 保证可用性和稳定性
链路梳理:核心链路、流量漏斗、强弱依赖
可观测性:链路追踪、核心监控、业务报警
全链路测试:压力测试、负载测试、容量测试
稳定性控制:系统限流、业务兜底、熔断降级
容灾演练:混沌工程、应急手册、容灾预案
2、电商秒杀业务介绍
电商由人员、货物、场景三个元素组成
2.1 秒杀业务的特点
瞬时流量高、读多写少、实时性要求高
2.2 秒杀的挑战
成本、反欺诈、防止超卖、高性能、扩展性、鲁棒性、流量管控
2.3 设计秒杀系统
2.3.1 场景
秒杀系统功能:活动发布、商品详细、下单
并发:大量请求、QPS 1w+、TPS 1k+
2.3.2 存储
MySQL->Redis->Localcache
2.3.3 服务
子服务:用户服务、风控服务、活动服务、订单服务
基础组件:ID生成器、缓存组件、MQ组件、限流组件
2.3.4 扩展
流量隔离、CDN、缓存优化、流量管控、数据库扩展、MQ扩展、Redis扩展、服务水平扩展、服务垂直扩展
2.4 系统架构
3、课程实践
3.1 秒杀流程
4、课程总结
服务无状态、批量写入、最终一致性
课后个人总结
今天学习的课程是实践课,主要是讲解系统设计与实现的过程,我觉得本节课的重点是系统设计的方法论,难点是电商秒杀业务介绍和课程实践,课程实践就是讲解代码,内容太多难以记住,需要慢慢地去消化吸收。今天我正好阅读了一篇关于电商秒杀系统设计的文章,对我去理解这一节课的内容还是有帮助的