系统设计|青训营笔记

67 阅读2分钟

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

主要内容:

系统设计方法论、电商秒杀项目、课程实践

系统设计相关问题:为什么要做系统设计、系统设计的定义是什么、怎么做系统设计如何落地一个系统、系统功能实现之后如何分析瓶颈并优化、如何验证系统的可用性和稳定性。

为什么要做系统设计:for面试、个人能力提升、拓展技术视野、业务驱动、系统重构、突破和创新。

如何评估一个系统:可用性、安全性、扩展性、易用性、性能、耦合性、可维护性、伸缩性。

系统设计的定义:为了达成某种目的,通过个体组成整体的过程。

如何做系统设计:场景分析、存储设计、服务设计、可扩展性。

如何发现系统的瓶颈:火焰图分析、链路追踪、性能测试。

如何保证可用性和稳定性:

链路梳理:核心链路、流量漏斗、强弱依赖。 可观测性:链路追踪、核心监控、业务警报。 全链路测试:压力测试、负载测试、容量测试。 稳定性控制:系统限流、业务兜底、熔断降级。 容灾演练:混沌工程、应急手册、容灾预案。

存储:mysql、redis 数据库表的设计

QQ截图20230205212929.png

服务:用户服务、风控服务、活动服务、订单服务、ID生成器、缓存组件、MQ组件、限流组件。

系统设计相关设计

QQ截图20230205213336.png

秒杀流程图

QQ截图20230205213410.png

数据库操作硬盘,比较慢,对于频繁访问的数据我们需要存到redis中。 怎么保证redis中的数据是原子操作。

秒杀遇到的挑战:资源成本、高性能、扩展性、鲁棒性、流量管控、防止超卖、反诈骗。

个人收获:通过今天的课程学习了系统设计相关知识,了解了秒杀系统的构成原理以及各部分的一个实现。通过一个实战项目更加深入的了解了秒杀系统。