这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
前言
这是小白初接触到Go语言的内容,本课程 手把手教你做系统设计之秒杀系统。
主要讲述系统设计方法论,电商秒杀业务介绍,课程实践,课程总结。
(1)系统设计方法论:
1.系统设计的一些问题:
为什么要做系统设计
系统设计的定义是什么
怎么做系统设计,如何落地一个系统
系统功能实现之后,如何分析瓶颈并优化
如何验证系统的可用性和稳定性
2.如何评估一个系统
可用性,扩展性,安全性,易用性,耦合性,伸缩性,可维护性,性能
3.系统设计的定义
系统:关联的个体,规则运作,组成工作的整体
设计:设想和计划,目的,过程安排
定义:为了达成某种目的,通过个体组成整体的过程
4.如何做系统设计
01.场景分析(Scenario):什么系统,需要哪些功能。多大的并发量
02.存储设计(Storage):数据如何组织,Sq存储NoSql存储
03服务设计(Service):业务功相实现和逻标整合
04可扩展性(Scale):解决设计缺陷。提高样住、扩展性
5.如何发现系统的瓶颈
火焰图分析,链路追踪,性能测试
6.如何保证可用性和稳定性
01链路梳理:核心链路,流星漏斗,强弱依赖
02.可观测性:链路追踪,核心监控,业务报警
03全链路测试:压力测试,负载测试,容量测试
04稳定性控制:系统限流,业务兜庑,熔断隆级
05容灾演练:混沌工程,应急手册,容灾预案
(2)电商秒杀业务介绍
2.1秒杀业务的特点和挑战
1.秒杀业务的特点:瞬时流量高,读多写少,实时性要求高
2.秒杀的挑战:资源成本,反欺诈,防止超卖,高性能,流量管控,扩展性,鲁棒性
2.2那如何设计秒杀系统
1.场景:功能:秒杀活动发布,秒杀商品详情,秒杀下单
2.存储:
3.服务:子服务:用户服务,风控服务,活动服务,订单服务
基础组件:ID生成器,缓存组件,MQ组件,.限流组件
4.扩展:流量隔离,CDN,缓存优化,流量管控,数据库扩展,MQ扩展,Redis扩展,服务水平扩展,服务垂直扩展
小结
本课程由浅入深,以高并发的分布式的电商秒杀业务系统为例,学习了系统设计的相关知识。