首页 > 其他分享 >如何设计可扩展的架构

如何设计可扩展的架构

时间:2022-10-04 16:45:55浏览次数:35  
标签:封装 复杂度 扩展 粒度 拆分 设计 架构 变化

架构设计的复杂度模型:

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

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

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

可扩展定义

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

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

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

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

      代码可扩展

 

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

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

            拆分形态 服务 模块 插件 包

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

      拆分粒度:

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

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

 

    封装复杂度模型

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

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

                 预测变化 决定 封装变化

 

 

 

 

          

      

标签:封装,复杂度,扩展,粒度,拆分,设计,架构,变化
From: https://www.cnblogs.com/windghost/p/16754001.html

相关文章

  • 云架构系统如何做性能分析?| 实战干货
    性能分析一直是性能实施项目中的一个难点。对于只做性能测试不做性能分析的团队来说,总是不能把问题非常显性地展示出来,不能给其他团队非常明确的引导。对于这种类型的测试实......
  • HBase中rowkey的设计
    HBase中rowkey的设计(重点!!面试题)HBase的RowKey设计HBase是三维有序存储的,通过rowkey(行键),columnkey(columnfamily和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中......
  • UDP程序设计
    UDP程序设计​无连接,不可靠的数据报协议-->简单,快捷域名系统,简单网络管理协议(SNMP),网络文件系统(NFS),动态主机配置协议(DHCP),实时传输协议RTP服务器端:创建socket......
  • spring:beanfactory与applicationcontext的设计
    beanfactory接口提供的方法:getBean,getBeanProvider,containsBean,isSingleton,getType,getAliaseslistableBeanFactory:不会取到手动注册的bean,为什么要这么做呢,因为有些bea......
  • 知识图谱顶会论文(ACL-2022) CAKE:用于多视图KGC的可扩展常识感知框架
    CAKE:用于多视图KGC的可扩展常识感知框架.pdf论文地址:CAKE:ScalableCommonsense-AwareFrameworkForMulti-ViewKnowledgeGraphCompletionCAKE:用于多视图知KGC的可扩......
  • 5种设计有效按钮的最佳做法
    英文| https://uxplanet.org/5-best-practices-for-designing-effective-buttons-71a4a33e6d26翻译|web前端开发公众号按钮是创建流畅对话的重要元素。对我来说,一位伟大......
  • 网页设计中的图标
    英文| https://medium.com/outcrowd/icons-in-web-design-824f57cb2db0翻译|web前端开发有一些用户不喜欢的图标。他们说图标不清楚,难看或根本无法解释他们想要表达的意......
  • PCB制作时的EMC避坑学习《PCB电磁兼容技术设计实践》
    第二章旁路、去耦和储能1.电容器等效电感称为等效串联电感(ESL),不过现在用的很少了。2.在选择电容时,应该选择其ESR,ESL都很小的电容。3.一定要尽量减少电容端的引线。4.......
  • 桥接模式【Java设计模式】
    桥接模式【Java设计模式】​​前言​​​​推荐​​​​桥接模式​​​​介绍​​​​实现​​​​最后​​前言2022/9/2313:34路漫漫其修远兮,吾将上下而求索本文是根据袁......
  • Redis核心设计原理(深入底层C源码)
    Redis基本特性1.非关系型的键值对数据库,可以根据键以O(1)的时间复杂度取出或插入关联值2.Redis的数据是存在内存中的3.键值对中键的类型可以是字符串,整......