初探软件架构 | 青训营

49 阅读2分钟

什么是架构?

架构,又称软件架构。是有关软件整体结构与组件的抽象描述。用于指导软件系统各个方面的设计。

定义还是太抽象,能不能再通俗一点?

实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

架构的重要性

地基没打好,大厦容易倒地基坚实了,大厦才能盖得高站在巨人肩膀上,才能看得远

单体架构和垂直应用架构|垂直切分

image.png

image.png

单体架构:分布式部署

垂直应用架构:按应用垂直切分的单体

优点: 水平扩容,运维不需要停服

问题: ·职责太多,开发效率不高,爆炸半径大

SOA、微服务|水平切分

image.png

image.png SOA(Service-Oriented Architecture)

1.将应用的不同功能单元抽象为服务

2.定义服务之间的通信标准

微服务架构:SOA的去中心化演进方向

后端架构实践

自适应静态权重

image.png 方案: 采集宿主机物理资源信息·调整容器注册的权重

优势: ·复杂度低 完全分布式,可用性高微服务中间件无适配成本

缺点: ·无紧急回滚能力 ·缺乏运行时自适应能力

自适应动态权重 Alpha

image.png 方案: ·容器动态权重的自适应调整·服务网格的服务发现&流量调度能力

演进方向: 解决无法紧急回滚的问题·运行时权重自适应

缺点: ·过度流量倾斜可能会有异常情况

自适应动态权重 Beta

image.png 方案: ·服务网格上报 RPC指标

演进方向: 极端场景的处理成为可能

缺点: ·时序数据库压力较大 ·动态权重决策中心职责越来越多,迭代→>变更→>风险

自适应动态权重Release

image.png 演进方向: ·微服务化 引入消息队列削峰、解耦 ·离在线链路切分 ·梳理强弱依赖

参考

后端架构实战 - 掘金 (juejin.cn)