Module 01 · Introduction to Microservices
Microservices Patterns微服务架构模式
学习目标
通过本节课程,你将能够:
✅ 描述 微服务架构中常用的模式(Patterns)
✅ 解释 不同模式的用途与适用场景
常见的微服务模式概览
在构建微服务应用时,开发者常会遇到一些共性挑战与设计机会。
以下是几种最具代表性的微服务架构模式:
| 模式名称 | 英文名称 | 主要作用 |
|---|---|---|
| 🧭 单页应用模式 | Single-Page Application (SPA) | 通过动态加载内容提升用户体验 |
| 🪄 前端后端分离模式 | Backend for Frontend (BFF) | 为不同终端提供专属后端接口 |
| 🌱 绞杀者模式 | Strangler Pattern | 分阶段将单体应用重构为微服务 |
| 🔍 服务发现模式 | Service Discovery Pattern | 动态管理与定位服务实例 |
| 🧩 实体与聚合模式 | Entity & Aggregate Pattern | 组织复杂数据关系(如电商订单与产品) |
| 🔌 适配器模式 | Adapter Pattern | 解决不同系统或API之间的不兼容问题 |
一、单页应用模式(SPA Pattern)
定义
单页应用(Single-Page Application) 是一种前端架构模式,
用户通过一个入口界面访问应用,页面不会重新加载或跳转,
而是通过 动态的后端 REST 服务调用 实现内容更新。
技术基础
- 🧱 HTML / CSS / JavaScript
- ⚡ 动态渲染前端视图
- 🌐 异步调用后端微服务
优点
- 🚀 用户体验流畅(无刷新操作)
- 🔁 页面响应更快
- 🧩 简化前端逻辑
局限
- 单页应用在**多渠道体验(如移动端 + 网页)**下表现较差。
- 后端负担较重,需要为动态请求提供更多支持。
二、BFF 模式(Backend for Frontend)
定义
BFF(Backend for Frontend) 模式在用户界面与后端服务之间加入一个专属层。
每个前端渠道(如网页、移动端)拥有独立的后端服务,以便优化该渠道的用户体验。
示例场景
| 渠道 | 对应后端 | 特点 |
|---|---|---|
| 📱 移动应用 | Mobile BFF | 显示数据较少、界面紧凑、网络带宽有限 |
| 💻 桌面网页 | Web BFF | 显示信息更全面、加载速度更快 |
每个 BFF 本身也是一个 微服务,
通过调用后端核心服务,为特定前端提供定制化响应。

优点
- ✅ 提高不同终端的性能与体验
- ✅ 代码职责清晰、易于维护
- ✅ 避免“大一统”后端造成的性能瓶颈
三、绞杀者模式(Strangler Pattern)
定义
绞杀者模式(Strangler Pattern) 用于渐进式重构单体应用。
其名字源于“绞杀藤蔓缠绕树木”这一自然现象。
目标是在不影响现有系统的前提下,逐步用微服务替代旧系统。
实施步骤

| 阶段 | 说明 |
|---|---|
| 🔧 Transform(转化) | 在云平台或原环境中创建一个平行的新系统 |
| ⚖️ Coexist(共存) | 保留旧系统,逐步将部分功能请求重定向到新系统 |
| 🗑️ Eliminate(替换) | 当新系统功能完善后,逐步停用旧系统模块 |
优点
- ✅ 无需一次性重构整个系统
- ✅ 保持旧应用持续运行
- ✅ 风险低、过渡平滑
💡 典型应用:将单体网站逐步重构为多个微服务模块(如订单、支付、报告等)。
四、服务发现模式(Service Discovery Pattern)
定义
在微服务架构中,服务实例动态变化(扩容、升级、故障),
因此需要一种机制帮助应用自动识别和定位可用的服务。
这就是 服务发现(Service Discovery) 模式。
工作机制
- 📡 服务实例注册到 注册中心(Service Registry)
- 🔁 应用通过 负载均衡器或客户端代理 查询服务位置
- 🧠 注册中心执行 健康检查(Health Check) 和 流量重分配
优点
- ✅ 自动化服务定位与管理
- ✅ 支持弹性伸缩与高可用性
- ✅ 减少人工配置错误
五、实体与聚合模式(Entity & Aggregate Pattern)
定义
该模式用于管理复杂业务数据结构。
例如在电商系统中:
一个订单(Order) = 若干产品(Products) + 买家信息(Buyer)
所有产品与买家信息共同形成一个 聚合(Aggregate)。
微服务可围绕该聚合进行数据一致性和事务管理。
六、适配器模式(Adapter Pattern)
定义
适配器模式 用于解决不同系统、对象或 API 之间的不兼容问题。
类似于旅行时使用的电源插头转换器。
示例
当微服务需要与第三方 API 通信时,
可通过编写适配器层来转换接口格式与协议,
确保系统之间顺畅交互而无需修改原有逻辑。
课程总结
你已经学会以下微服务设计模式的核心要点:
| 模式 | 主要用途 |
|---|---|
| 🧭 SPA | 动态更新页面、提升前端体验 |
| 🪄 BFF | 为不同渠道定制后端服务 |
| 🌱 Strangler | 渐进式替换单体应用 |
| 🔍 Service Discovery | 动态发现并管理服务实例 |
| 🧩 Entity & Aggregate | 组织和管理复杂业务数据 |
| 🔌 Adapter | 解决系统间不兼容问题 |
✨ 一句话总结:
微服务模式 = 结构优化 + 灵活扩展 + 高可维护性 💡
每种模式都是解决特定架构挑战的“最佳实践积木” 🧱