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

95 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第 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、课程总结

服务无状态、批量写入、最终一致性

课后个人总结

今天学习的课程是实践课,主要是讲解系统设计与实现的过程,我觉得本节课的重点是系统设计的方法论,难点是电商秒杀业务介绍和课程实践,课程实践就是讲解代码,内容太多难以记住,需要慢慢地去消化吸收。今天我正好阅读了一篇关于电商秒杀系统设计的文章,对我去理解这一节课的内容还是有帮助的