如何设计可扩展的架构

架构设计的复杂度模型:

      质量复杂度  高性能、高可用、成本、安全等质量属性的要求。

      业务复杂度 业务固有的复杂度,难以理解,难以扩展。业务数量多、流程长,相互关系复杂。

      业务复杂度与质量复杂度互不影响。

可扩展定义

      可扩展 可理解、可复用。系统适应变化的能力

      可伸缩  可以通过添加资源来提升性能的能力

      架构可扩展  可理解问题 进行拆分  微服务、分层

      应用可扩展  可理解-拆分(包、模块)  可复用-封装(微内核、规则引擎、设计模式) 

      代码可扩展

 

鸡蛋篮子理论第一法则--拆分法则:如果鸡蛋在一个篮子里数不清,就分散到多个篮子里再数。

      拆分   拆分粒度约束拆分形态

            拆分形态 服务 模块 插件 包

            拆分粒度  内部复杂度 外部复杂度

      拆分粒度:

                 平衡原则:内部复杂度与外部复杂度反向关联,处理时需要平衡。

                 先粗后细:如果无法把握,先进行粗粒度拆分,如果存在问题则再进行拆分。

 

    封装复杂度模型

          预测变化  原则1、只预测2年内的变化   原则2 三次法则-没有把握不要预测,需要时再重构。

          封装变化 微内核、规则引擎、设计模式、抽象层

                 预测变化 决定 封装变化

 

 

 

 

          

      

posted on 2022-10-04 16:33  李某人的窥视  阅读(81)  评论(0)    收藏  举报

导航