这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
主要内容:
系统设计方法论、电商秒杀项目、课程实践
系统设计相关问题:为什么要做系统设计、系统设计的定义是什么、怎么做系统设计如何落地一个系统、系统功能实现之后如何分析瓶颈并优化、如何验证系统的可用性和稳定性。
为什么要做系统设计:for面试、个人能力提升、拓展技术视野、业务驱动、系统重构、突破和创新。
如何评估一个系统:可用性、安全性、扩展性、易用性、性能、耦合性、可维护性、伸缩性。
系统设计的定义:为了达成某种目的,通过个体组成整体的过程。
如何做系统设计:场景分析、存储设计、服务设计、可扩展性。
如何发现系统的瓶颈:火焰图分析、链路追踪、性能测试。
如何保证可用性和稳定性:
链路梳理:核心链路、流量漏斗、强弱依赖。 可观测性:链路追踪、核心监控、业务警报。 全链路测试:压力测试、负载测试、容量测试。 稳定性控制:系统限流、业务兜底、熔断降级。 容灾演练:混沌工程、应急手册、容灾预案。
存储:mysql、redis 数据库表的设计
服务:用户服务、风控服务、活动服务、订单服务、ID生成器、缓存组件、MQ组件、限流组件。
系统设计相关设计
秒杀流程图
数据库操作硬盘,比较慢,对于频繁访问的数据我们需要存到redis中。 怎么保证redis中的数据是原子操作。
秒杀遇到的挑战:资源成本、高性能、扩展性、鲁棒性、流量管控、防止超卖、反诈骗。
个人收获:通过今天的课程学习了系统设计相关知识,了解了秒杀系统的构成原理以及各部分的一个实现。通过一个实战项目更加深入的了解了秒杀系统。