微服务:非功能质量需求的具体指标。

非功能质量需求的具体指标针对不同的系统主要分为4部分:应用服务器、数据库、缓存和消息队列,本文会总结并列出这4部分指标,以帮助读者在实际生产实践中做非功能质量需求的设计方案。

应用服务器

应用服务器是服务的入口,请求流量从这里进入系统,数据库、缓存和消息队列的访问量取决于应用服务器的访问量。对应用服务器的访问量进行评估至关重要,应用服务器主要关心每秒请求的峰值及对请求的响应时间等指标,通过这些指标可以评估我们需要的应用服务器资源的数量。
部署结构的相关指标如下表所示。

序号部署结构
1负载均衡策略
2高可用策略
3I/O模型(NIO/BIO)
4线程池模型
5线程池中的线程数量
6是否多业务混合部署

容量和性能的相关指标如下表所示。

序号容量和性能
1每天的请求量
2各接口的访问峰值
3平均的请求响应时间
4最大的请求响应时间
5在线的用户量
6请求的大小
7网卡的I/O流量
8磁盘的I/O负载
9内存的使用情况
10CPU的使用情况

其他相关指标如下表所示。

序号其他指标
1请求的内容是否包含大对象
2GC收集器的选型和配置

数据库

根据应用层的访问量和访问峰值,计算出需要的数据库资源的吞吐量、每天的数据总量等,由此来评估所需数据库资源的数量和配置、部署结构等。
部署结构的相关指标如下表所示。

序号部署结构
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)

缓存

根据应用层的访问量和访问峰值,通过评估热数据占比,计算缓存资源的大小并估算缓存资源的峰值,由此来计算所需缓存资源的数量、部署结构、高可用方案等。
部署结构的相关指标如下表所示。

序号部署结构
1复制模型
2失效转移
3持久策略
4淘汰策略
5线程模型
6预热方法
7哈希分片策略

容量和性能的相关指标如下表所示。

序号容量与性能
1缓存内容的大小
2缓存内容的数量
3缓存内容的过期时间
4缓存的数据结构
5每秒的读峰值
6每秒的写峰值

其他相关指标如下表所示。

序号其他指标
1冷热数据比例
2是否有可能发生缓存穿透
3是否有大对象
4是否使用缓存实现分布式锁
5是否使用缓存支持的脚本(Lua)
6是否避免了Race Condition
7缓存分片方法(客户端、代理、集群)

消息队列

根据应用层的平均访问量和访问峰值,计算出需要消息队列传递的数据量,进而计算出所需的消息队列资源的数量、部署结构、高可用方案等。
部署结构的相关指标如下表所示。

序号部署结构
1复制模型
2失效转移
3持久策略

容量和性能的相关指标如下表所示。

序号容量与性能
1每天平均的数据增量
2消息持久的过期时间
3每秒的读峰值
4每秒的写峰值
5每条消息的大小
6平均延迟
7最大延迟

其他相关指标如下表所示。

序号其他指标
1消费者线程池模型
2哈希分片策略
3消息的可靠投递
4消费者的处理流程和持久机制

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值