跳转到主要内容
SEO Title
【架构】非功能需求:可扩展性要求

可扩展性是指系统能够以满足其所提供服务不断增长的需求的能力增长的能力。系统可扩展性标准可以包括容纳越来越多的能力

  • ·用户,
  • ·每毫秒交易,
  • ·可以运行并同时提供结果的SQL语句数。

我知道许多具有可伸缩性问题的小型和大型应用程序,主要是由于缺乏良好的需求规范,除了没有可扩展性所必需的良好体系结构。

可扩展性要求有多重要?今天,在数据库大小不断增长的情况下,系统性能预期同样迅速增长。请记住,无论硬件和处理器的效率如何,能够最佳利用它的完善的系统架构同样重要。我的意思是,例如,数据库体系结构需要可扩展,以满足在线用户提交的类似类型的SQL查询数量的预期增加,没有明显的性能下降,没有任何错误或保持或锁定。另一方面,它应该适应越来越多的批处理事务,而不会过度训练批处理时间。

在我所知道的最近部署的软件应用程序中,实现了基于事件的触发器的概念。将案例数据的每个更改事件记录为触发器,稍后由批处理进程使用。在初始部署不到五万个案例量后,应用程序开始日夜产生膨胀的触发器数量。它成了瓶颈,严重影响了性能。及时完成批处理周期成为一项挑战!在运行的几个月内,在批处理过程中发生了故障。系统无法管理触发器爆炸。具有讽刺意味的是,这个系统被吹捧为能够承受百万箱的负荷。

不正确定义的可伸缩性要求可能会对软件使用产生负面影响。

可扩展性要求可以基于诸如用户审计,数据库使用,关键性能需求等内容进行广泛分类。例如,对于高度以用户为中心的Web应用程序,可扩展性要求需要以系统可以同时使用的用户数量为基础。今天以及未来的支持,不会让性能降低。虽然这些被归类为用户可伸缩性,但数据库可伸缩性是能够在期望的时间内响应越来越多的查询,同时针对不断增长的数据库与多事务批处理的性能。系统可扩展性讨论了属于服务器功能可扩展性的要求,以支持预期的未来打开连接数,每个用户请求的响应时间等。

在软件生命周期的早期识别可伸缩性要求的优点是,它允许架构框架在开发过程中变得足够健全。有可用于解决可伸缩性的措施,例如:

  • ·有效的硬件资源,以满足用户的需求,
  • ·数据库模式定义,分区,
  • ·数据库查询和优化技术等的复杂性

但是,建立基准并模拟测试条件以匹配它们是一项艰巨的任务。

可伸缩性是需求,软件架构,性能配置和环境选择之间的平衡行为。