架构定义学习(一) | 青训营笔记

47 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 9 天,今天对后端开发与迭代中需要经常使用的架构进行初步的学习,并进行一些总结

概念

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

架构的重要性:

1、架构可以控制系统对质量指标的掌控

2、在架构中的决策可以用来推断或管理系统演化过程中的变更

3、对架构的分析可以更早的预测系统的质量

4、架构可以为演化模型提供基础

架构的分类

单体架构

概念: 整个系统的所有功能单元,整体部署到同一个进程(所有代码可以打包成1个或多个文件),我们可以称之为单体架构。

优点:

  • 小项目开发快 成本低
  • 架构简单
  • 易于测试
  • 易于部署

缺点:

  • 大项目模块耦合严重,不易开发,维护,沟通成本高
  • 新增业务困难
  • 核心业务与边缘业务混合在一块,出现问题互相影响

垂直架构

概念: 根据业务把项目垂直划分成多个项目,因此这种架构称为垂直架构。垂直划分的依据是业务的特性、核心目标。

优点:

  • 系统拆分实现了流量分担,解决了并发问题
  • 可以针对不同系统进行优化
  • 方便水平扩展,负载均衡,容错率提高
  • 系统间相对独立,互不影响,新的业务迭代时更加高效

缺点:

  • 搭建集群之后,实现负载均衡较复杂
  • 服务系统接口调用监控不到位,调用方式不统一
  • 服务监控不到位
  • 数据库资源浪费

先简单总结到这,目前也只是知道概念,通过课程中的举例,理解的并不是很好,只好通过网上其他一些文档进行辅助的学习总结...