系统设计基础
系统设计的步骤
- 问清楚系统具体要求:系统设计的需求:功能性需求和非功能性需求
- 对系统进行抽象设计:画系统的抽象架构图,包含系统的一些组件和组件之间的连接
- 考虑系统目前优化的点:
- 当前系统部署在一台机器足够吗?是否需要部署在多台机器,然后进行负载均衡
- 数据库处理速度能否支撑业务需求?是否需要给指定字段加索引?是否需要读写分离?是否需要缓存?
- 数据量有多大?是否需要分库分表
- 系统是否需要分布式文件系统
- 优化 3 中的系统抽象设计
性能方面的指标
- 响应时间 RT:用户发出请求直接反应系统处理用户请求速度的快慢
- 并发数:系统能够同时供多少人访问使用,即系统同时能处理的请求数量,并发数反映了系统的负载能力
- QPS:服务器每秒可以执行的查询次数
- TPS:服务器每秒处理的事务数,这个事务可以理解为客户发出请求到收到服务器响应的过程
- 吞吐量:系统单位时间内系统处理的请求数量
系统活跃度
- PV(Page View):访问量,即页面浏览量;在一定统计周期内用户每打开或刷新一个页面就记录一次,
- UV(Unique Visitor):独立访客,统计一天内访问某站点的用户数
- DAU(Daily Active User):日活跃用户数量
- MAU(Mouth Active User):月活跃用户数量
性能优化顺序
- SQL 优化、JVM、DB 调优
- 硬件性能优化
- 业务逻辑优化 / 缓存
- 读写分离、集群
- 分库分表
![]()
![]()
扫描二维码,输入您要赞赏的金额
赞赏不用多,心意到了即可