目录
可扩展性
定义:
可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。
how:
设计具备良好可扩展性的系统,有两个基本条件:正确预测变化、完美封装变化。
预测变化的复杂性源头:
1.不能每个设计点都考虑可扩展性。
2.不能完全不考虑可扩展性。
所有的预测都存在出错的可能性。把握预测的程度和提升预测结果的准确性,是一件很复杂的事情,而且没有通用的标准可以简单套上去,更多是靠自己的经验、直觉,没有明确标准,不同的人理解和判断有偏差,而最终又只能选择一个判断。
在准确预测变化的前提下,如何应对?
一般分为两种形式:
1:变化层--》稳定层 例如,如果系统需要支持 XML、JSON、ProtocolBuffer 三种接入方式
2. 稳定层--》变化层 例如,如果系统需要支持 MySQL、Oracle、DB2 数据库存储
具体需要根据具体业务情况来设计。不变的是将“变化”封装在一个“变化层”,将不变的部分封装在一个独立的“稳定层” 。
两个主要的复杂性相关的问题
因此,出现两个主要的复杂性相关的问题:
1 系统需要拆分出变化层和稳定层
对于哪些属于变化层,哪些属于稳定层,很多时候并不是像前面的示例(不同接口协议或者不同数据库)那样明确,不同的人有不同的理解,导致架构设计评审的时候可能吵翻天。

本文深入探讨了系统架构中的关键要素:可扩展性、低成本、安全和规模。可扩展性涉及预测变化、封装变化层和稳定层,确保系统在需求变化时仍能保持灵活。安全层面包括功能安全(如防止XSS、SQL注入等)和架构安全(防火墙隔离)。随着规模增长,系统复杂度指数级上升,需要应对数据量的挑战。文章提出了应对这些复杂性的策略和挑战。
&spm=1001.2101.3001.5002&articleId=90478969&d=1&t=3&u=f471e97718fe48d88c70f90981f6eb76)

被折叠的 条评论
为什么被折叠?



