可伸缩性

常见问题

有时由于硬件设备的限制,单纯软件上的性能优化已经无法提升系统性能?
这时需要改造系统的架构体系,提升系统的扩展能力,组合多个只具备低处理能力的硬件设备,从而达到一个具有高处理能力的系统。

可伸缩性

当增加计算机资源时(例如CPU、内存、存储容量或I/O带宽),程序的吞吐量或者处理能力能相应地增加。
例如当业务量小的时候,软件系统运行在一台服务器上,当业务量大的时候,可以通过增加服务器,或增加单台服务器上锁运行的软件系统的个数了来提高其性能,从而达到不需要对软件系统本身进行编程级的修改或变更。

如何实现

纵向伸缩scale up

提升单台机器配置
适合短期处理问题

优点

  • 维护简单

缺点

  • 高端设备费用贵
  • 单台机器的处理能力总是有限的
  • 故障影响大

横向伸缩scale out

增加机器来提升系统的性能
最完美的情况是线性扩展,负载扩大N倍,机器也增加N倍来保持性能不变

优点

  • 成本低
  • 故障影响小

缺点

  • 节点增多,架构整体复杂度提高
  • 集群维护难度加大,维护成本更高

可伸缩性与可扩展性

  • 可伸缩性:对规模的扩展
  • 可扩展性:对变化的扩展
原文地址:https://www.cnblogs.com/powercto/p/12902345.html