Go 秒杀系统 | 青训营笔记

60 阅读1分钟

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

1.系统设计方法论

(1)为什么要做系统设计

工作需要

(2)如何评估一个系统

可用性 扩展性 安全性 易用性 可维护性 性能 耦合性 伸缩性

(3)系统设计的定义

为了达成某种目的,通过个体组成整体的过程

(4)如何做系统设计

image-20230205224708340.png

(5)如何发现系统的瓶颈

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

(6)如何保证可用性和稳定性

链路梳理:核心链路,流量漏斗,强弱依赖

可观测性:链路追踪,核心监控,业务报警

全链路测试:压力测试,负崎载测试,容量测试

稳定性控制:系统限流,业务兜底,熔断降级

容灾演练:混沌工程,应急手册,容灾预案

2.电商秒杀业务介绍

(1)电商介绍

image-20230205224959616.png

(2)秒杀业务的特点

瞬时流量高 读多写少 实时性要求高

(3)秒杀的挑战

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

(4)系统架构图

image-20230205225125817.png

3.课程实践

(1)秒杀流程图

image-20230205225150205.png

4.课程总结

服务无状态

批量写入

最终一致性