[ go语言day9 | 青训营笔记]

67 阅读2分钟

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

为什么要做系统设计

个人

为了面试 个人能力提升 拓展技术视野:设计新的技术,会极大拓展技术视野

工作

业务驱动: 系统重构:系统存在问题,对系统重构 突破和创新:直播电商对于传统电商的突破。

如何评估一个系统

可用性: 易用性 可维护性 安全性 拓展性 耦合性

系统设计的定义

系统是什么

他是一个关联的个体,规则运作 组成工作的整体

设计是什么

设想和计划 目的 过程安排 定义:为了达成某种目的,通过个体组成整体的过程

如何发现系统的瓶颈

火焰图分析 链路追踪 性能测试

如何保证可用性和稳定性

链路梳理

核心链路 流量漏斗 强弱依赖

可观测性

链路追踪 核心监控 业务报警

全链路测试

压力测试 负载测试 容量测试

稳定性控制

系统限流 业务兜底 熔断降级

容灾演练

混沌工程 应急手册 容灾预案

电商介绍

商品:具有交易价值和属性的信息载体 spu:standard product unit sku:stock keeping unit

秒杀业务的特点

瞬时流量高 读多写少 实时性要求高

秒杀的挑战

资源成本 高性能 拓展性 防止超卖 反欺诈 流量管控 鲁棒性

场景(scenario)

场景 存储 服务 拓展 功能: 秒杀活动发布 秒杀商品详情 秒杀下单’ 并发: 万人参与秒杀 qps 1w+ tps 1k+

子服务

用户服务 风控服务 活动服务 订单服务

基础组件

id生成器 缓存组件 mq组件 限流组件 流量隔离 cdn 缓存优化 流量管理 redis拓展 数据库拓展 mq拓展 redis拓展 服务水平拓展 服务垂直拓展