这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记
架构
架构的定义
- 是有关软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
架构的演进
单机
把所有功能都实现在一个进程里,并部署在一台机器上
优点:简单
缺点:能提供的服务有限,运维需要停服。
单体、垂直应用 | 垂直切分
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点:水平扩容,运维不需要停服
缺点:职责太多,开发效率不高。爆炸半径大(个体出现问题,容易导致整条链停摆)
SOA
service-oriented architecture
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准(核心要点)
微服务
SOA的去中心化演进方向
问题:
- 数据一致性
- 高可用,不同服务之间如何高效交互
- 治理,如何容灾
- 解耦 vs 运维 收益是否大于提高的运维成本