系统架构设计思路 | 青训营笔记

111 阅读2分钟

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

今日课程介绍了系统设计的方法论,并且用一个商品秒杀系统的设计作为例子进行了讲解。

系统的评估

性能、可用性、安全性、扩展性、易用性、耦合性、伸缩性、可维护性......

系统设计的标准流程

本节课介绍了系统设计中的 4S 分析法:

  1. 场景分析(Scenario)

    什么系统,需要哪些功能,多大的并发量

  2. 存储设计(Storage)

    数据如何组织,Sql存储,NoSql存储

  3. 服务设计(Service)

    业务功能实现和逻辑整合

  4. 可扩展性(Scale)

    解决设计缺陷,提高鲁棒性、扩展性

秒杀系统设计

  1. 场景分析

    功能上包括秒杀活动的发布,商品详情展示和下单的相关操作;在并发量方面考虑有一万左右用户参与秒杀,对应 QPS 1w+, TPS 1k+。

  2. 存储设计

    考虑 MySQL->Redis->本地内存 的数据存储流程,结合实际业务设计表结构,以及相关的分库分表、分布式容灾、未来的扩展等。

  3. 服务设计

    • 功能服务

      包括用户服务、风控服务、活动服务、订单处理等

    • 基础服务

      包括 ID 生成、缓存、消息队列组件、限流组件等

  4. 扩展

    未来可以从 CDN 、流量隔离等方面分散请求压力,通过缓存和消息队列对流量削峰等;数据库方面也可以进行分布式扩展;也可以根据业务进行水平或垂直扩展。

总结

本节课主要是思路上的指导,为我今后考虑大型项目整体架构提供了一种新的思考方式。尽管大型系统中的很多组件不一定都能掌握,但是在了解基本概念后,也可以结合整个系统设计的视角更好地融入团队开发。