什么是架构?
架构,又称软件架构。是有关软件整体结构与组件的抽象描述。用于指导软件系统各个方面的设计。
定义还是太抽象,能不能再通俗一点?
实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
架构的重要性
地基没打好,大厦容易倒地基坚实了,大厦才能盖得高站在巨人肩膀上,才能看得远
单体架构和垂直应用架构|垂直切分
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点: 水平扩容,运维不需要停服
问题: ·职责太多,开发效率不高,爆炸半径大
SOA、微服务|水平切分
SOA(Service-Oriented Architecture)
1.将应用的不同功能单元抽象为服务
2.定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
后端架构实践
自适应静态权重
方案:
采集宿主机物理资源信息·调整容器注册的权重
优势: ·复杂度低 完全分布式,可用性高微服务中间件无适配成本
缺点: ·无紧急回滚能力 ·缺乏运行时自适应能力
自适应动态权重 Alpha
方案:
·容器动态权重的自适应调整·服务网格的服务发现&流量调度能力
演进方向: 解决无法紧急回滚的问题·运行时权重自适应
缺点: ·过度流量倾斜可能会有异常情况
自适应动态权重 Beta
方案:
·服务网格上报 RPC指标
演进方向: 极端场景的处理成为可能
缺点: ·时序数据库压力较大 ·动态权重决策中心职责越来越多,迭代→>变更→>风险
自适应动态权重Release
演进方向:
·微服务化
引入消息队列削峰、解耦
·离在线链路切分
·梳理强弱依赖