入门
了解课程的基本内容。
课程介绍
多年来,我们在使用 Java 或 .NET 编程,或构建端点时,一直采用一些通用的设计与实现集成应用的模式和原则。这些包括消息传递模式、面向服务架构(SOA)模式、云原生模式、微服务模式、弹性设计模式等。了解并分类这些模式,理解它们的成本与收益,对于做出明智的设计决策至关重要。
模式会随着时间不断演进。随着技术的进步,硬件变得更快,编译器更加智能,新的编程语言和编程范式不断涌现。业务需求也要求更快的响应速度,并能更敏捷地适应不断变化的世界。所有这些因素都在推动新语言、新框架、新模式和最佳实践的出现。今天流行的“四人组”(GoF)设计模式,明天可能就变成反模式。以单例模式和双重检查锁定模式为例:如今我们很少再使用它们,因为单例模式会使类难以进行单元测试,而并发编程已有性能更优的替代方案。我们必须相信:不存在绝对的最佳实践,只有在特定上下文中的良好实践。这一思维方式同样适用于本课程中的各类模式。请仔细阅读这些模式,在使用之前思考:它带来的价值是否超过了所需付出的努力?如果现有模式不适用,我们也不应害怕创造属于自己的新模式。
课程内容结构
为帮助您建立合理预期,需要说明的是:本课程并未遵循任何特定的模式描述语言。每章均按以下结构组织:
- 名称:模式的名称
- 意图:对模式的简要描述
- 背景与问题:问题出现的场景及表现方式
- 制约因素与解决方案:该模式如何解决上述问题
- 实现机制:与 Camel 相关的具体实现细节
在尽可能的前提下,通过图表来展现用例和模式的核心思想。图示主要采用企业集成模式(Enterprise Integration Patterns)中的标准图标作为表达符号,而非依赖 Camel DSL、伪代码或 UML。每节课末尾附有简短测验,用于检验您的掌握程度。
课程整体结构
下一节将列出本课程中讨论的所有模式,并按字母顺序排列,同时提供一张思维导图。其余课程内容按照如下方式组织:
下图展示了本课程所采用的层级结构:
一个模式并不总是仅归属于单一类别。根据其设计意图,同一模式可能具有多种影响,可同时适用于多个类别。本课程将重点探讨以下三类模式:
- 基础模式
此类模式主要用于构建和组织集成流程,主要针对正常执行路径(即“愉快路径”)。
本类别涵盖的模式包括:
- VETRO 模式
- 标准数据模型模式
- 命令查询职责分离模式
- 职责分离模式
- 可复用路由模式
- 运行时重新配置模式
- 外部配置模式
- 错误处理模式
此类模式聚焦于错误处理、错误预防与故障恢复。它们用于设计异常路径(即“不愉快路径”)的集成流程。
本类别涵盖的模式包括:
- 数据完整性模式
- Saga 模式
- 幂等过滤器模式
- 重试模式
- 限流模式
- 熔断器模式
- 错误通道模式
- 部署模式
在完成对正常路径与异常路径的流程设计后,下一步需要从更高层次审视:这些集成流程之间是如何交互的?为何如此交互?
此类模式不关注单个服务的内部结构,而是关注整个分布式系统的整体架构。
本类别涵盖的模式包括:
- 服务实例模式
- 单例服务模式
- 负载均衡模式
- 并行流水线模式
- 隔离舱模式
- 服务整合模式