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

99 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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扩展,服务水平扩展,服务垂直扩展

小结

本课程由浅入深,以高并发的分布式的电商秒杀业务系统为例,学习了系统设计的相关知识。