基于Apache Camel的企业集成模式实践:第三章-企业集成模式简介

基于Apache Camel的企业集成模式实践:第三章-企业集成模式简介

精选文章moguli202025-04-09 14:14:3916A+A-

摘要
Apache Camel的
企业集成模式设计灵感源自Gregor Hohpe与Bobby Woolf合著的同名经典著作。书中提出的模式为企业集成项目提供了强大的工具箱:既为集成架构的讨论提供通用术语体系,又可通过Apache Camel的编程接口和XML配置直接实现多数模式。


3.1 模式概览

《企业集成模式》

Apache Camel全面支持《Enterprise Integration Patterns》一书中描述的大多数模式,为开发者提供了标准化的集成解决方案。


消息系统

表3.1 "消息系统"展示了构成消息系统的核心模式,这些模式定义了消息传递的基础概念和组件。

表3.1 消息系统

图标

名称

用例

消息模式

如何通过消息通道实现两个应用间的单条信息交换?

消息通道模式

应用如何通过消息传递建立通信?

消息端点模式

应用如何连接消息通道进行收发?

管道和过滤器模式

如何实现复杂处理的模块化与灵活性?

消息路由模式

如何基于条件解耦处理步骤?

消息转换模式

异构系统如何通过消息传递实现数据格式转换?


消息通道

表3.2 "消息通道"描述了不同类型消息通道的应用场景。

表3.2 消息通道

图标

名称

用例

点对点通道

如何确保消息被唯一接收方处理?

发布订阅通道

如何实现事件广播?

死信通道

如何处理无法投递的消息?

保证交付

如何确保系统故障时的消息可靠性?

消息总线

如何构建松耦合的应用集成架构?


消息构造

表3.3 "消息构造"描述了消息在系统中的形态与功能。

表3.3 消息构造

图标

名称

用例

关联标识符

如何匹配请求与响应?

返回地址

如何指定响应返回路径?


消息路由

表3.4 "消息路由"展示了消息通道的动态链接方式。

表3.4 消息路由

图标

名称

用例

内容路由

如何将逻辑功能分布到多系统?

消息过滤

如何屏蔽无关消息?

收件人列表

如何动态指定接收方列表?

续表

分离器

如何处理包含多个元素的消息?

聚合器

如何合并相关消息的处理结果?

重排器

如何恢复乱序消息的正确顺序?

组合消息处理器

如何维护多元素消息的处理流程?

路由单

如何动态定义消息处理步骤顺序?

无图标

节流器

如何控制消息流量以防止过载?

无图标

延迟器

如何延迟消息发送?

无图标

负载均衡器

如何分配消息到多个端点?

无图标

断路器

如何通过断路器增强服务调用可靠性?

无图标

服务调用

如何在分布式系统中调用远程服务?

无图标

多播

如何将消息同时路由至多个端点?

无图标

循环

如何重复处理消息?

无图标

采样

如何避免消息流过载?


消息转换

表3.5 消息转换

图标

名称

用例

内容丰富器

如何补充消息缺失的数据?

内容过滤器

如何简化大消息的处理?

声明检查

如何减少消息数据量而不丢失信息?

规范化器

如何处理语义相同但格式不同的消息?

无图标

排序

如何对消息体进行排序?


消息端点

表3.6 消息端点

图标

名称

用例

无图标

消息映射器

如何解耦领域对象与消息系统?

事件驱动消费者

如何自动消费可用消息?

轮询消费者

如何按需拉取消息?

竞争消费者

如何并行处理消息?

消息调度器

如何协调多消费者的消息处理?

选择性消费者

如何筛选接收的消息?

持久订阅者

如何避免离线时消息丢失?

无图标

全能消费者

如何避免重复消息处理?

事务客户端

如何控制消息事务?

消息网关

如何封装对消息系统的访问?

服务激活器

如何设计多协议兼容的服务?


系统管理

表3.7 系统管理

图标

名称

用例

系统管理

如何监控点对点通道的消息?


点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2