分布式架构的非功能质量需求

2019-08-31 12:45:44 浏览数 (1)

非功能质量需求分为4个部分:应用服务器,数据库,缓存,消息队列

本文摘自《分布式服务架构》

用于备忘,便于查找


1. 应用服务器

部署结构

序号

部署结构

1

负载均衡策略

2

高可用策略

3

I/O模型

4

线程池模型

5

线程池中的线程数量

6

是否多业务混合部署

容量和性能

序号

容量和性能

1

各接口的请求量

2

各接口的访问峰值

3

平均的请求响应时间

4

最大的请求响应时间

5

在线的用户量

6

请求的大小

7

网卡的I/O流量

8

磁盘的I/O负载

9

内存的使用情况

10

CPU使用情况

其他指标

序号

其他指标

1

请求的内容是否包含大对象

2

GC收集器的选型和配置

2. 数据库

部署结构

序号

部署结构

1

复制模型

2

失效转移策略

3

容灾策略

4

归档策略

5

读写分离策略

6

分库分表(分片)策略

7

静态数据和半静态数据是否使用缓存

8

有没有考虑缓存穿透并压垮数据库的情况

9

缓存失效和缓存数据预热策略

容量和性能

序号

容量和性能

1

当前的数据容量

2

每天的数据增量(预估容量)

3

每秒的读峰值

4

每秒的写峰值

5

每秒的事务量峰值

其他指标

序号

其他指标

1

查询是否走索引

2

有没有大数据量的查询和范围查询

3

有没有多表关联,关联是否用到索引

4

有没有使用悲观锁,可否改成乐观锁,可否利用数据库内置行级锁

5

事务和一致性级别

6

使用的JDBC数据源类型及连接数等配置

7

是否开启JDBC诊断日志

8

有没有存储过程

9

伸缩策略(分区表,自然时间分表,水平分库分表)

10

水平分库分表实现方法(客户端,代码,NoSQL)

3. 缓存

部署结构

序号

部署结构

1

复制模型

2

失效转移策略

3

持久策略

4

淘汰策略

5

线程模型

6

预热方法

7

哈希分片策略

容量和性能

序号

容量和性能

1

缓存内容的大小

2

缓存内容的实现

3

缓存内容的过期时间

4

缓存的数据结构

5

每秒的读峰值

6

每秒的写峰值

其他指标

序号

其他指标

1

冷热数据比例

2

是否可能发生缓存穿透

3

是否有大对象

4

是否使用缓存实现分布式锁

5

是否使用缓存支持的脚本(Lua)

6

是否避免了Race Condition

7

缓存分片方法(客户端,代理,集群)

4. 消息队列

部署结构

序号

部署结构

1

复制模型

2

失效转移

3

持久策略

容量和性能

序号

容量和性能

1

每天平均的数据增量

2

消息持久的过期时间

3

每秒的读峰值

4

每秒的写峰值

5

每条消息的大小

6

平均延迟

7

最大延迟

其他指标

序号

其他指标

1

消费者线程池模型

2

哈希分片策略

3

消息的可靠投递

4

消费者的处理流程和持久机制

0 人点赞