这是我参与「第五届青训营」伴学笔记创作活动的第 9 天,今天对后端开发与迭代中需要经常使用的架构进行初步的学习,并进行一些总结
概念
架构,又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。架构对软件在方法的选择上有指导作用。
架构的重要性:
1、架构可以控制系统对质量指标的掌控
2、在架构中的决策可以用来推断或管理系统演化过程中的变更
3、对架构的分析可以更早的预测系统的质量
4、架构可以为演化模型提供基础
架构的分类
单体架构
概念: 整个系统的所有功能单元,整体部署到同一个进程(所有代码可以打包成1个或多个文件),我们可以称之为单体架构。
优点:
- 小项目开发快 成本低
- 架构简单
- 易于测试
- 易于部署
缺点:
- 大项目模块耦合严重,不易开发,维护,沟通成本高
- 新增业务困难
- 核心业务与边缘业务混合在一块,出现问题互相影响
垂直架构
概念: 根据业务把项目垂直划分成多个项目,因此这种架构称为垂直架构。垂直划分的依据是业务的特性、核心目标。
优点:
- 系统拆分实现了流量分担,解决了并发问题
- 可以针对不同系统进行优化
- 方便水平扩展,负载均衡,容错率提高
- 系统间相对独立,互不影响,新的业务迭代时更加高效
缺点:
- 搭建集群之后,实现负载均衡较复杂
- 服务系统接口调用监控不到位,调用方式不统一
- 服务监控不到位
- 数据库资源浪费
先简单总结到这,目前也只是知道概念,通过课程中的举例,理解的并不是很好,只好通过网上其他一些文档进行辅助的学习总结...