Skip to content

Architectural Patterns in Software 软件架构模式 🏗️

学习目标 🎯

观看完本视频后,您将能够:

  • 描述 不同的软件架构,如:2-tier、3-tier、对等网络(peer-to-peer)、事件驱动(event-driven)和微服务(microservices)架构;

  • 提供 每种架构模式的示例。

image 19.png


什么是架构模式? 🔄

架构模式 是一种解决软件架构问题的可重复解决方案。它们强调软件系统的常见内部元素和结构,不同的架构模式可能会共享一些相关特征。
本视频将讨论以下架构模式:

  • 2-tier 架构(客户端-服务器)

  • 3-tier 架构

  • 对等网络(P2P)架构

  • 事件驱动架构

  • 微服务架构

当然,除了这些常见的架构模式,还有很多其他的模式未被涵盖,如:

  • 模型-视图-控制器(MVC)

  • 消息代理(Message Broker)

  • 黑板架构(Blackboard)

  • 管道-过滤器(Pipe-Filter)

  • 控制器-响应器(Controller-Responder)

image 20.png


2-Tier 架构(客户端-服务器) 💻➡️🖥️

2-tier 架构 也称为客户端-服务器架构,是一种计算模型,其中服务器托管、交付并管理大部分资源和服务。

  • 客户端机器上提供接口,通过网络向服务器请求数据或服务。

  • 客户端与服务器之间的通信通常是通过网络连接实现的,通常存在多个客户端计算机连接到同一个服务器。

    image 21.png

示例:

  • 文本消息应用:客户端通过服务器发送短信,服务器将消息转发给另一个客户端。

  • 数据库客户端-服务器:数据库客户端通过数据库服务器进行连接,访问和管理数据。


3-Tier 架构(三层架构) 📊💡💾

3-tier 架构 是最常见的软件架构,它由多个水平层次组成,这些层次作为一个整体的单元共同工作。

  • 每一层只与直接上下相邻的层进行通信。

  • 相关组件放置在同一层内,不同层次之间的变化不会相互影响。

    image 22.png

3层的具体划分:

  1. 展示层(Presentation Tier):用户界面。

  2. 应用层(Application Tier):处理业务逻辑。

  3. 数据层(Data Tier):数据存储与管理。

示例:

  • Web 应用:通过 Web 服务器提供用户界面,应用服务器处理用户输入,数据库服务器管理数据。

对等网络架构(P2P) 🌐🤝

对等网络(P2P)架构 是一种去中心化的网络,其中的每个节点既是客户端也是服务器,工作负载在这些节点间分配。

  • 节点直接向其他网络参与者提供资源,而不需要服务器进行中央协调。

  • 节点既提供资源(如处理能力、磁盘存储、网络带宽),也消费资源。

    image 23.png

示例:

  • 比特币、以太坊等加密货币:区块链中的每台计算机都充当客户端和服务器。

事件驱动架构 (Event-Driven Architecture) 🔄🎉

事件驱动架构 中,事件指的是任何导致系统状态变化的行为。

  • 事件生产者 监听并响应触发器,事件消费者 处理这些事件。

  • 生产者将事件发布到事件路由器,路由器决定将事件推送给哪个消费者。

  • 触发事件生成一条消息,称为 事件通知,并发送给正在监听该事件的消费者。

    image 24.png

示例:

  • 共享出行应用(如 Lyft 和 Uber):客户发送一个通知请求接送,事件被路由到消费者进行处理。

特点:

  • 松耦合:组件之间的关系松散,非常适合现代分布式系统。

微服务架构 (Microservices) 🧩🌍

微服务架构 是一种将应用功能拆分为多个模块化组件(服务)的方法。

  • 每个服务独立运行,并通过 API(应用程序接口)与其他服务进行通信。

  • 每个服务负责特定的业务功能,可以单独部署和扩展。

    image 25.png

示例:

  • 社交媒体网站:用户可以请求不同的服务,如添加好友、推荐广告、显示内容等。

架构特点:

  • 服务之间的 松耦合,每个服务都是独立的,协作完成整个应用功能。

架构模式示例 📱💻

image 26.png

1. 2-tier 架构示例

  • 文本消息应用:客户端向服务器发起请求,服务器将消息发送给另一个客户端。

  • 数据库应用:数据库客户端连接到数据库服务器,执行查询和数据管理操作。

2. 3-tier 架构示例

  • Web 应用

    • 展示层:提供用户界面

    • 应用层:处理业务逻辑

    • 数据层:管理数据存储

3. 事件驱动架构示例

  • 共享出行应用:客户请求服务,系统通过事件驱动路由通知司机。

4. 对等网络架构示例

  • 比特币、以太坊等加密货币:所有区块链参与者都充当客户端和服务器。

5. 微服务架构示例

  • 社交媒体平台:用户帐户请求不同的服务,如内容展示、广告推荐、好友管理等。

组合架构模式 🧩🔀

架构模式不一定是互相排斥的,意思是可以将两种或多种架构模式结合使用。例如:

  • 一个 三层架构 可以也同时基于 微服务架构

  • 对等网络架构 也可以同时是 事件驱动架构

image 27.png

但并不是所有架构模式都能同时使用。例如:

  • 对等网络架构2-tier 架构 是互斥的,因为在 P2P 中,单个节点既是客户端也是服务器,而在 2-tier 中,客户端和服务器是分开的。

总结 📌

在本视频中,您学习了:

  • 架构模式 是一种解决软件架构问题的可重复方案。

  • 2-tier 架构:由客户端和服务器组成。

  • 3-tier 架构:由三个层次组成,Web 应用采用此架构。

  • 事件驱动架构:基于事件的生产和消费,适用于共享出行应用。

  • 对等网络架构(P2P):去中心化网络,每个节点都是客户端和服务器。

  • 微服务架构:通过多个独立的服务构建应用,每个服务独立运行,通过 API 进行交互,社交媒体平台为例。

  • 两种或更多架构模式可以在同一系统中组合使用,但有些架构模式不能一起使用。

这些架构模式为构建高效、灵活的软件系统提供了坚实的基础!

image 28.png