您当前位置:资讯中心 >服务器 >浏览文章

系统架构七个非功能性需求

来源:互联网 日期:2023/11/10 16:11:35 阅读量:(0)

在软件系统里面,功能性需求是面向用户、详细明确的需求,由产品人员根据市场的需要提炼出来,是产品生命周期里最重要的一环。比如电商系统里面的优惠券功能,通常包含需求:优惠券分类、细分领券人群、核销优惠券等等。一旦需求通过技术评审,开发人员必须依照文档实现功能,不允许轻易变更。

非功能性需求是什么呢?保障系统持续健康运转的辅助需求。依然以电商系统的优惠券为例,在促销活动期间发放大量优惠券,如何防止用户集中领券时系统不崩盘呢?活动结束后,如何收缩服务器,节省服务器资源呢?非功能性需求是面向运维的,重要但是不太紧迫,有时候可以没有操作界面,由架构师提出解决方案,再推动各个业务开发部门去接入相应组件。这些辅助系统对业务系统性能影响很小,并且长期处于优化状态。

1.可伸缩性

可伸缩性是指系统根据外部负载自动调节计算能力,常见的做法是水平扩展和垂直扩展。

  • 水平扩展

当系统负载很高时,增加服务端的节点数量,也叫做扩容;当负载很低时,释放闲置的机器,也叫做缩容。这两个过程有几个重要的思考点:

(1)节点越多,承载能力越高吗:任何事情都有两面性,为了解决问题引入一个方案,就必然带来新的问题。节点越多,协调节点的开销就越大,额外增加的计算资源抵不上协调节点的开销,并发能力不升反降。
(2)扩容多少节点才够用:资源总是有限的,用有限的资源做更多的事情,才能得到资本家的欢心。合理扩容的数量根据压测的结果来定。在日常的运维中,要求系统能够自动化扩容少量机器处理突发流量,如果超出负载再发出警报。

  • 垂直扩展

垂直扩展是指增强单机处理能力,比如增加内存、升级CPU、更换固态硬盘等等。这个做法的好处是简单快速,无需调整系统设计;缺点是单机的处理能力始终有限,不可能无限升级,而且更换硬件必须停机,影响系统可用性。

2.可用性

系统可用性是指系统在规定的时间内正常运行的能力,是衡量系统质量和稳定性的重要指标之一。例如,一个系统的可用性为99.9%,表示在一年中的时间里,系统正常运行的时间占据了99.9%。以下是计算公式:

Availability = (Total Time - Downtime) / Total Time * 100%
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。