架构风格汇总
架构风格 | 核心特点 | 应用场景 |
---|
分层架构(Layered) | 将系统划分为多个层次,每层只依赖于下一层 | 企业应用、MIS 系统、三层架构 |
客户端-服务器(C/S) | 分为服务端与客户端,服务集中,客户端请求 | 数据库系统、桌面应用 |
管道-过滤器(Pipe and Filter) | 数据通过多个处理器(过滤器)依次处理 | 编译器、数据处理流 |
微内核架构(Microkernel) | 核心服务 + 可插拔扩展模块 | 操作系统、IDE 插件系统 |
事件驱动架构(EDA) | 组件通过事件异步通信,解耦高 | 监控系统、实时系统 |
面向服务架构(SOA) | 系统由多个服务组成,通过接口交互 | 企业集成、大型政企系统 |
微服务架构(Microservices) | 更细粒度的 SOA,服务自治、独立部署 | 大型互联网系统 |
REST 架构风格 | 基于资源的网络交互,使用 HTTP 动词 | Web API、移动端后端 |
共享数据总线(Repository) | 所有模块通过共享存储交互 | 数据仓库、AI 训练平台 |
黑板架构(Blackboard) | 所有模块访问统一“黑板”,适合多策略协作 | AI 语音识别、专家系统 |
面向对象架构(OO) | 用对象封装数据与操作,强调封装、继承 | 面向对象编程系统 |
分布式架构(Distributed) | 组件部署在多个节点,协作完成任务 | 集群系统、分布式数据库 |
重点架构风格详解
分层架构(Layered Architecture)
- 结构:UI层 → 业务逻辑层 → 数据访问层;
- 优点:高内聚、低耦合,利于维护;
- 缺点:层次多时性能下降;
- 考试高频:三层架构就是典型分层架构。
面向服务架构(SOA)
- 核心:服务松耦合、可复用、基于接口通信(如 SOAP/WSDL);
- 服务注册中心、ESB(企业服务总线)常与 SOA 一起出现;
- 适合:异构系统集成、政企复杂系统。
微服务架构(Microservices)
- 核心:服务更小更自治,支持独立开发与部署;
- 技术支持:注册中心(如 Nacos)、API 网关(如 Kong)、容器部署(K8s);
- 对比 SOA:粒度更小,DevOps 支持更强;
- 适合:大规模互联网系统(如电商平台、内容平台)。
客户端-服务器架构(C/S)
- 特征:分为请求发起者(客户端)与响应处理者(服务端);
- 常见于:银行柜面系统、局域网办公系统;
- 考试常问:与 B/S 模式的比较。
管道-过滤器架构
- 结构:过滤器处理模块+管道连接通道;
- 优点:易复用、并行处理;
- 常用于:编译器(词法 → 语法 → 语义)。
架构风格选择对比
架构风格 | 优点 | 缺点 | 适合场景 |
---|
分层架构 | 模块清晰,维护方便 | 依赖层次,性能低 | 企业业务系统 |
微服务 | 高弹性,独立部署 | 运维复杂,通信开销大 | 高并发系统 |
SOA | 服务复用,松耦合 | 架构复杂,依赖中间件 | 异构系统集成 |
C/S | 快速响应,局域网性能好 | 不利于扩展,部署繁琐 | 办公自动化 |
REST | 简洁轻量,易调试 | 不支持复杂事务 | Web 接口 |
事件驱动 | 解耦强,响应快 | 调试困难,数据追踪复杂 | 实时推送 |
微内核 | 插件扩展灵活 | 核心模块设计复杂 | 插件系统 |