[ 后端与 Go | 青训营笔记 ]

81 阅读2分钟

[ 后端与 Go | 青训营笔记 ]

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

课内:Go 系统设计

系统设计是根据系统分析的结果,运用系统科学的思想和方法,设计出能最大限度满足所要求的目标 (或目的) 的新系统的过程。. 系统设计内容,包括确定系统功能、设计方针和方法,产生理想系统并作出草案,通过收集信息对草案作出修正产生可选设计方案,将系统分解为若干子系统,进行子系统和总系统的详细设计并进行评价,对系统方案进行论证并作出性能效果预测。

重点

  • 系统设计方法论;
  • 电商秒杀业务介绍;
  • 课程实践;
  • 课程总结。

细节

系统设计方法论

简介

问题

image-20230205141626164

原因

  • 个人

    • 面试;
    • 能力提升;
    • 拓展技术视野。
  • 工作

    • 业务驱动;
    • 系统重构;
    • 突破与创新。

评估

image-20230205141826056

定义

  • 系统

    • 关联的个体;
    • 规则运作;
    • 组成工作的整体。
  • 设计

    • 设想与计划;
    • 目的;
    • 过程安排。
  • 为了达成某种目的,通过个体组成整体的过程。
标准流程

如何做

  • 场景分析;
  • 存储设计;
  • 服务设计;
  • 可拓展性。

image-20230205142119769

发现瓶颈

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

image-20230205142232350

电商秒杀业务

介绍

  • 消费者侧:消费者、用户、流量来源。

  • 供给侧:商品、商家、供应链。

  • 交易环境:线下商场、线上电商。

image-20230205142458967

image-20230205142522179

特点

要求

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

挑战

image-20230205142659786

设计

场景

  • 功能

    • 活动发布;
    • 商品详情;
    • 快速下单。
  • 并发

    • 万人参与;
    • QPS 1w+;
    • TPS 1k+。

存储

image-20230205142851694

image-20230205142900854

服务

  • 子服务

    • 用户服务;
    • 风控服务;
    • 活动服务;
    • 订单服务。
  • 基础组件

    • ID 生成器;
    • 缓存组件;
    • MQ 组件;
    • 限流组件。

拓展

image-20230205143049336

系统架构图

image-20230205143116481

实践

流程图

image-20230205143143794

总结

  • 服务无状态;
  • 批量写入;
  • 最终一致性。