[ 后端与 Go | 青训营笔记 ]
这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
课内:Go 系统设计
系统设计是根据系统分析的结果,运用系统科学的思想和方法,设计出能最大限度满足所要求的目标 (或目的) 的新系统的过程。. 系统设计内容,包括确定系统功能、设计方针和方法,产生理想系统并作出草案,通过收集信息对草案作出修正产生可选设计方案,将系统分解为若干子系统,进行子系统和总系统的详细设计并进行评价,对系统方案进行论证并作出性能效果预测。
重点
- 系统设计方法论;
- 电商秒杀业务介绍;
- 课程实践;
- 课程总结。
细节
系统设计方法论
简介
问题
原因
-
个人
- 面试;
- 能力提升;
- 拓展技术视野。
-
工作
- 业务驱动;
- 系统重构;
- 突破与创新。
评估
定义
-
系统
- 关联的个体;
- 规则运作;
- 组成工作的整体。
-
设计
- 设想与计划;
- 目的;
- 过程安排。
- 为了达成某种目的,通过个体组成整体的过程。
标准流程
如何做
- 场景分析;
- 存储设计;
- 服务设计;
- 可拓展性。
发现瓶颈
- 火焰图分析;
- 链路追踪;
- 性能测试。
电商秒杀业务
介绍
人
- 消费者侧:消费者、用户、流量来源。
货
- 供给侧:商品、商家、供应链。
场
- 交易环境:线下商场、线上电商。
特点
要求
- 瞬时流量高;
- 读多写少;
- 实时性要求高。
挑战
设计
场景
-
功能
- 活动发布;
- 商品详情;
- 快速下单。
-
并发
- 万人参与;
- QPS 1w+;
- TPS 1k+。
存储
服务
-
子服务
- 用户服务;
- 风控服务;
- 活动服务;
- 订单服务。
-
基础组件
- ID 生成器;
- 缓存组件;
- MQ 组件;
- 限流组件。
拓展
系统架构图
实践
流程图
总结
- 服务无状态;
- 批量写入;
- 最终一致性。