系统架构设计(十一):架构风格总结2

架构风格汇总

架构风格 核心特点 应用场景
分层架构(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 接口
事件驱动 解耦强,响应快 调试困难,数据追踪复杂 实时推送
微内核 插件扩展灵活 核心模块设计复杂 插件系统
相关推荐
ujainu12 小时前
Flutter + OpenHarmony 实战:《圆环跳跃》——完整游戏架构与视觉优化
flutter·游戏·架构·openharmony
爬山算法13 小时前
Hibernate(74)如何在CQRS架构中使用Hibernate?
java·架构·hibernate
香芋Yu13 小时前
【大模型教程——第二部分:Transformer架构揭秘】第2章:模型家族谱系:从编码器到解码器 (Model Architectures)
深度学习·架构·transformer
从此不归路14 小时前
Qt5 进阶【13】桌面 Qt 项目架构设计:从 MVC/MVVM 到模块划分
开发语言·c++·qt·架构·mvc
java干货14 小时前
微服务:把一个简单的问题,拆成 100 个网络问题
网络·微服务·架构
C澒15 小时前
前端技术核心领域与实践方向
前端·系统架构
橙露17 小时前
Vue3+Pinia实战:从零搭建企业级后台管理系统的核心架构
架构
小毅&Nora17 小时前
【人工智能】【大模型】从厨房到实验室:解密LLaMA架构如何重塑大模型世界
人工智能·架构·llama
CS创新实验室17 小时前
《计算机网络》深入学:IPv4 协议架构与演进
网络·计算机网络·架构·ipv4
前端不太难17 小时前
HarmonyOS 上,App、游戏、PC 能共用架构吗?
游戏·架构·harmonyos