深色模式
Architectural Patterns in Software 软件架构模式 🏗️
学习目标 🎯
观看完本视频后,您将能够:
描述 不同的软件架构,如:2-tier、3-tier、对等网络(peer-to-peer)、事件驱动(event-driven)和微服务(microservices)架构;
提供 每种架构模式的示例。

什么是架构模式? 🔄
架构模式 是一种解决软件架构问题的可重复解决方案。它们强调软件系统的常见内部元素和结构,不同的架构模式可能会共享一些相关特征。
本视频将讨论以下架构模式:
2-tier 架构(客户端-服务器)
3-tier 架构
对等网络(P2P)架构
事件驱动架构
微服务架构
当然,除了这些常见的架构模式,还有很多其他的模式未被涵盖,如:
模型-视图-控制器(MVC)
消息代理(Message Broker)
黑板架构(Blackboard)
管道-过滤器(Pipe-Filter)
控制器-响应器(Controller-Responder)

2-Tier 架构(客户端-服务器) 💻➡️🖥️
2-tier 架构 也称为客户端-服务器架构,是一种计算模型,其中服务器托管、交付并管理大部分资源和服务。
客户端机器上提供接口,通过网络向服务器请求数据或服务。
客户端与服务器之间的通信通常是通过网络连接实现的,通常存在多个客户端计算机连接到同一个服务器。

示例:
文本消息应用:客户端通过服务器发送短信,服务器将消息转发给另一个客户端。
数据库客户端-服务器:数据库客户端通过数据库服务器进行连接,访问和管理数据。
3-Tier 架构(三层架构) 📊💡💾
3-tier 架构 是最常见的软件架构,它由多个水平层次组成,这些层次作为一个整体的单元共同工作。
每一层只与直接上下相邻的层进行通信。
相关组件放置在同一层内,不同层次之间的变化不会相互影响。

3层的具体划分:
展示层(Presentation Tier):用户界面。
应用层(Application Tier):处理业务逻辑。
数据层(Data Tier):数据存储与管理。
示例:
- Web 应用:通过 Web 服务器提供用户界面,应用服务器处理用户输入,数据库服务器管理数据。
对等网络架构(P2P) 🌐🤝
对等网络(P2P)架构 是一种去中心化的网络,其中的每个节点既是客户端也是服务器,工作负载在这些节点间分配。
节点直接向其他网络参与者提供资源,而不需要服务器进行中央协调。
节点既提供资源(如处理能力、磁盘存储、网络带宽),也消费资源。

示例:
- 比特币、以太坊等加密货币:区块链中的每台计算机都充当客户端和服务器。
事件驱动架构 (Event-Driven Architecture) 🔄🎉
在 事件驱动架构 中,事件指的是任何导致系统状态变化的行为。
事件生产者 监听并响应触发器,事件消费者 处理这些事件。
生产者将事件发布到事件路由器,路由器决定将事件推送给哪个消费者。
触发事件生成一条消息,称为 事件通知,并发送给正在监听该事件的消费者。

示例:
- 共享出行应用(如 Lyft 和 Uber):客户发送一个通知请求接送,事件被路由到消费者进行处理。
特点:
- 松耦合:组件之间的关系松散,非常适合现代分布式系统。
微服务架构 (Microservices) 🧩🌍
微服务架构 是一种将应用功能拆分为多个模块化组件(服务)的方法。
每个服务独立运行,并通过 API(应用程序接口)与其他服务进行通信。
每个服务负责特定的业务功能,可以单独部署和扩展。

示例:
- 社交媒体网站:用户可以请求不同的服务,如添加好友、推荐广告、显示内容等。
架构特点:
- 服务之间的 松耦合,每个服务都是独立的,协作完成整个应用功能。
架构模式示例 📱💻

1. 2-tier 架构示例
文本消息应用:客户端向服务器发起请求,服务器将消息发送给另一个客户端。
数据库应用:数据库客户端连接到数据库服务器,执行查询和数据管理操作。
2. 3-tier 架构示例
Web 应用:
展示层:提供用户界面
应用层:处理业务逻辑
数据层:管理数据存储
3. 事件驱动架构示例
- 共享出行应用:客户请求服务,系统通过事件驱动路由通知司机。
4. 对等网络架构示例
- 比特币、以太坊等加密货币:所有区块链参与者都充当客户端和服务器。
5. 微服务架构示例
- 社交媒体平台:用户帐户请求不同的服务,如内容展示、广告推荐、好友管理等。
组合架构模式 🧩🔀
架构模式不一定是互相排斥的,意思是可以将两种或多种架构模式结合使用。例如:
一个 三层架构 可以也同时基于 微服务架构,
对等网络架构 也可以同时是 事件驱动架构。

但并不是所有架构模式都能同时使用。例如:
- 对等网络架构 和 2-tier 架构 是互斥的,因为在 P2P 中,单个节点既是客户端也是服务器,而在 2-tier 中,客户端和服务器是分开的。
总结 📌
在本视频中,您学习了:
架构模式 是一种解决软件架构问题的可重复方案。
2-tier 架构:由客户端和服务器组成。
3-tier 架构:由三个层次组成,Web 应用采用此架构。
事件驱动架构:基于事件的生产和消费,适用于共享出行应用。
对等网络架构(P2P):去中心化网络,每个节点都是客户端和服务器。
微服务架构:通过多个独立的服务构建应用,每个服务独立运行,通过 API 进行交互,社交媒体平台为例。
两种或更多架构模式可以在同一系统中组合使用,但有些架构模式不能一起使用。
这些架构模式为构建高效、灵活的软件系统提供了坚实的基础!
