架构 和 微服务框架 | 青训营笔记

36 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

什么是架构?

架构,又称软件架构

用简单的话来讲,架构 是实现软件,在 方法选择 上的 指导

软件系统,需要对外提供服务,因此就产生了 部署的问题,选择什么方式进行部署

通常,软件架构可以从不同的角度来考虑:

  1. 结构层面:软件系统的整体结构、组成部分之间的关系,包括模块化、分层、组件化等。
  2. 行为层面:软件系统的行为、功能和服务,包括业务逻辑、处理流程、交互方式等。
  3. 演化层面:软件系统的演化过程,包括升级、扩展、维护等。

最初、也是最简单的就是 单机架构

单机,将所有功能实现在一个进程中,并部署在一台机器

显而易见的是,单机架构并不能处理并发问题,有着性能的上限,单机的唯一优势在于简单,方便项目的研究开发。

为了解决并发问题,引入分布式部署,也就是用多个机器进行负载均衡,这就是 单体架构

在此基础上,对不同机器的功能加以区分,就是 垂直应用架构

通过业务区分机器就是 垂直切分,这种方式 将会引入 数据的一致性问题 之前也了解过,在此先按下不表。

但是,垂直切分后的架构,也要面临 业务场景复杂服务职责增多 的问题,软件架构 不但需要处理业务逻辑,同样要面对 缓存和持久化问题。

因此 就引入了 水平拆分

按着这个思路,会将进程按照功能抽象成服务,并制定通信标准,就是 SOA架构,SOA架构的主要目标是将软件系统划分为独立的服务单元,通过定义和共享接口以实现松耦合的互操作性。