My Github

5分钟了解系统架构设计(1)

最近梳理了之前学习的架构设计相关的一些课程学习总结,将其整理成了一个大纲脑图,以每篇5分钟系列展现出来,希望对你有所帮助。

本篇,我们聚焦架构设计的基础知识。在了解架构设计这个topic之前,我们需要对一些常见的概念有理解。

模块与组件

相同点:模块与组件都是系统的组成部分

不同点:只是从不同的角度拆分系统而已,从逻辑的角度拆分后得到的单元是“模块”,从物理的角度拆分后得到的单元就是“组件”;

划分模块的主要目的是职责分离,而划分组件的主要目的是单元复用。

框架与架构

框架是组件规范,提供一些基础功能的产品,比如:MVC是一种最常见的开发规范,而Spring MVC, ASP.NET MVC 都是 MVC 的开发框架,它们提供了很多基础功能帮助程序员实现功能。

架构是软件系统的“基础结构”,从不同的角度或维度,可以将系统划分为不同的结构,比如:业务逻辑的角度,物理部署的角度,开发规范的角度等等。

框架关注的是“规范”,而架构关注的是“结构”。

一些关键指标

(1)系统可用性指标:SLA 

SLA全称:Service-Level Agreement, SLA

SLA的计算方式:

常见可用性指标:

常见指标解读:

2个9 表示 系统基本可用,年度不可用时间小于88小时。

3个9 表示 较高可用,年度不可用时间小于9小时。

4个9 表示 具有自动恢复能力的高可用,年度不可用时间小于53分钟(52.56分钟)。

5个9 表示 具有极高的可用性,年度不可用时间小于5分钟。

更加科学的度量方式:

任何一家互联网公司,都有流量的低峰期和高峰期,在低峰期停机1分钟和高峰期停机1分钟,对业务影响的结果完全不同。因此,可以基于一种更加科学的度量方式来评估,即基于一段时间(比如1年)的停机影响的请求量占比进行评估。

 

综上所述,在回答SLA指标时,先说明N个9 和 影响请求量占比,再结合实际业务场景回答。

 (2)系统性能指标1:延迟 和 吞吐量

吞吐量:即系统处理请求的速率,它反映了单位时间内处理请求的能力,一般用TPS或QPS作为单位。

延迟:即响应时间,它反映了客户端发送请求到接收响应的时间,一般用ms和s作为单位。

吞吐量和延迟既互斥 又 不绝对互斥

对一些延迟要求比较高的系统来说,系统优化性能指标是要找到延迟趋向最低和吞吐量趋向最高的点

(3)系统性能指标2:TP(Top Percentile)

以TP99为例,它代表的是 请求中99%的请求能够达到的性能。

TP是一个时间值,比如TP99=100ms,即99%的请求能够在100ms内得到响应

TP99计算方式

把一段时间内所有请求的响应时间,按照从小到大进行排序,然后取99%对应的请求的响应时间,即为TP99的值。

为什么用TP99?

TP99比计算平均响应时间更能反映系统性能的真实情况。

(4)系统全链路性能指标

一次请求会涉及到的前后端全链路性能指标:

参考资料

李运华,《从0开始学架构》

刘海丰,《架构设计面试精讲》

潘新宇,《23讲搞定后台架构实战》

 

posted @ 2022-12-12 21:35  EdisonZhou  阅读(568)  评论(0编辑  收藏  举报