架构设计思路

架构设计思路

前言

我们一般在做架构设计的时候,会经历过三个阶段:需求分析、概要设计和详细设计。

  1. 需求分析阶段 : 主要梳理所有用例(Use case)和场景,并抽象出面向系统的用户与角色,梳理出需求提供哪些功能与非功能的需求给这些用户。
  2. 概要设计阶段 :根据需求分析的产物:核心需求,对整个系统进行模块划分,并定义好模块之间的交互关系。
  3. 详细设计阶段 :通过多个视图来描述系统的架构,包括但不局限于:逻辑系统、物理视图、数据视图、物理视图

非功能需求

非功能的需求主要体现在高性能、高可用、可伸缩、可扩展、安全性等维度。

非功能需求对应不同系统指标

非功能需求对应不同系统指标主要分为 4 部分:

1. 应用服务器

应用服务器是请求的入口,所有流量都是通过应用服务器来转发的。主要关心 QPS 、RT 等指标。容量与性能相关指标如下所示

1. 每天的请求量
2. 各接口的访问峰值
3. 平均响应时间
4. 最大响应时间
5. 请求大小
6. 网卡与磁盘 I/O 负责
7. 内存使用情况
8. CPU 使用情况复制代码

2. 数据库

部署结构相关指标

1. 复制模型
2. 失效转移策略
3. 容灾策略
4. 归档策略
5. 读写分离策略
6. 分库分表策略复制代码

容量与性能相关指标如下所示

1. 当前数据容量
2. 预估数据容量
3. 每秒读峰值
4. 每秒写峰值
5. 每秒事务峰值复制代码

3. 缓存

部署结构相关指标

1. 复制模型
2. 失效转移
3. 持久策略
4. 淘汰策略
5. 线程模型复制代码

容量与性能相关指标

1. 缓存内容大小
2. 缓存内容数量
3. 缓存内容过期时间
4. 缓存数据结构
5. 每秒读峰值
6. 每秒写峰值复制代码

4. 消息队列

部署结构相关指标

1. 复制模型
2. 失效转移
3. 持久策略复制代码

容量与性能相关指标

1. 每天平均数据增量
2. 消息保存时间
3. 每秒读峰值
4. 每秒写峰值
5. 每条消息大小
6. 平均响应时间
7. 最大响应时间复制代码

参考

  • 分布式服务架构原理、设计与实战

原文 

https://juejin.im/post/5dc7e5bde51d4504bb344122

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 架构设计思路

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址