软件架构模式浅析

doMore 859 2022-01-15

参考文章:
【1】五分钟理解软件架构模式 注意:该文章为英文,可能访问不了。

本篇文章翻译至 参考文章【1】,一为加深记忆,二为提高英语水平。

作为软件工程师为什么要学习软件架构模式?

首先,了解软架构模式能够帮助你更有效的了解架构师的要求;

其次,知道这些模式能够帮助更好的管理你的代码。例如:如果你的应用设计是基于事件驱动的微服务,作为一个软件工程师,如果现有服务中逻辑的复杂性和责任不断增加,你必须把你的代码解耦到一个单独的服务中。

在Mark Richards《Software Architecture Patterns》书中分了以下五种架构模式:

  1. 分层架构
  2. 事件驱动架构
  3. 微内核(插件式架构)
  4. 微服务架构
  5. 基于空间架构(云架构模式)

分层架构

这种架构在单体应用中最为常见。

基本思想就是将应用程序的逻辑划分为若干层,每一层都封装了特定的角色。例如,持久层就是负责应用程序与数据库引擎的通信。

分层架构

事件驱动架构

中心思想是将应用逻辑解耦为单一用途的事件处理组件,这些组件异步的接受和处理事件。

这种架构模式流行的分布式异步架构之一,具有高扩展性和适应性。

事件驱动架构

微内核式架构

也被称做插件式架构。主要有两大核心组件:核心系统插件模块

例如:浏览器,可以安装很多插件。还有就是 JDK9 重构之后的垃圾回收器,都是模块化。

微内核(插件式架构)

微服务架构

微服务架构是由单独部署的服务组成,每个服务都有单独的一个职责,并且这些服务相互独立,如果其中一个服务出现异常,其他的服务并不会停止运行。

微服务式架构

基于空间的架构模式

主要想法是分布式共享内存,以缓解经常发生在数据库层面的问题。

其假设是:通过使用内存数据处理大部分操作,这样可以避免在数据库中进行额外的操作,从而规避未来可能由此产生的任何问题(例如:你的用户活动数据实体发生了变化,并不需要改变一堆代码来持久化和从数据库中检索这些数据)。

最基本的方法就是将应用程序分离成处理单元(可以根据需求自动扩展和缩小),数据将在单元之间复制和处理,而不需要持久化到中央仓库(在系统出现故障的时候有本地缓存)。

基于空间的架构(云架构)