Apache Camel指南-第零章:企业集成模式简介

摘要

Apache Camel的企业集成模式的灵感来自Gregor Hohpe和Bobby Woolf所写的同名书。这些作者描述的模式为开发企业集成项目提供了一个极好的工具箱。除了提供用于讨论集成体系结构的通用语言外,许多模式都可以使用Apache Camel的编程接口和XML配置直接实现。

模式概述

《企业集成模式》

Apache Camel支持Gregor Hohpe和Bobby Woolf 撰写的《Enterprise Integration Patterns》一书中的大多数模式。
企业集成模式架构图

消息系统

消息系统的基本概念和组件。

图标名称用例
消息图标“消息模式”通过消息通道连接的两个应用程序如何交换一条信息?
消息通道图标“消息通道模式”一个应用程序如何使用消息传递与另一应用程序通信?
消息端点图标“消息端点模式”应用程序如何连接到消息传递通道以发送和接收消息?
管道和过滤器图标“管道和过滤器模式”我们如何在保持独立性和灵活性的同时对消息执行复杂的处理?
消息路由器图标“消息路由器模式”如何解耦各个处理步骤,以便根据一组定义的条件将消息传递到不同的过滤器?
消息翻译器图标“消息转换器模式”使用不同数据格式的系统如何通过消息传递相互通信?

消息通道

消息传递通道是用于连接消息传递系统中的参与者的基本组件。在图案“消息通道”描述了不同类型的消息通道可用的。

表:消息通道

图标名称用例
点对点图标“点对点通道模式呼叫者如何才能确保恰好有一个接收者会收到文件或将执行呼叫?
发布订阅图标“发布订阅通道模式发送者如何向所有感兴趣的接收者广播事件?
死信图标“死信通道模式”消息传递系统将如何处理无法传递的消息?
保证交货图标“保证传递模式”即使消息系统发生故障,发件人如何确保消息将被传递?
消息总线图标“消息总线模式”有什么体系结构可以使分离的,分离的应用程序一起工作,从而可以在不影响其他应用程序的情况下添加或删除一个或多个应用程序?

消息构造

消息构造显示的消息构造模式描述了通过系统的消息的各种形式和功能。

图标名称用例
关联标识符图标称为“标识”的部分请求者如何识别生成收到的回复的请求?
寄信人地址图示“返回地址”回复者如何知道将回复发送到哪里?

消息路由

消息路由 显示的消息路由模式描述了将消息通道链接在一起的各种方法,包括可以应用于消息流的各种算法(无需修改消息主体)。

图标名称用例
基于内容的路由器图标“基于内容的路由器”我们如何处理单个逻辑功能(例如清单检查)的实现分布在多个物理系统上的情况?
邮件过滤器图标“消息过滤器”组件如何避免收到不感兴趣的消息?
收件人列表图标“收件人清单”我们如何将邮件路由到动态指定的收件人列表?
分离器图标“分离器”如果消息包含多个元素,而每个元素可能都必须以不同的方式进行处理,我们该如何处理?
聚合器图标“聚合器”我们如何合并单个但相关的消息的结果,以便可以整体处理它们?
重新排序图标“重排器”我们如何才能获得一系列相关但不按顺序排列的消息回到正确的顺序?
分布聚合图标“组合消息处理器”处理包含多个元素(每个元素可能需要不同的处理)的消息时,如何维护整个消息流?
“散布聚集”当一条消息需要发送给多个收件人(每个收件人都可以发送回复)时,您如何维护整个消息流?
路由单图标“布线单”如果在设计时未知步骤的顺序,并且每个消息可能有所不同,我们如何通过一系列处理步骤连续地路由消息?
“节流器”如何限制消息以确保特定端点不会过载,或者我们不会超出某些外部服务的商定SLA?
“ 延迟器”如何延迟发送消息?
“负载均衡器”如何在多个端点之间平衡负载?
“ 断路器”呼叫外部服务时如何使用Hystrix断路器?Camel 2.18中的新功能。
“服务电话”通过在注册表中查找服务,如何在分布式系统中调用远程服务?Camel 2.18中的新功能。
“多播”如何将消息同时路由到多个端点?
“循环”如何重复循环处理消息?
“采样”如何在给定时间段内从多条消息中采样一条消息,以避免自己的流路由过载?

消息转换

消息转换显示的消息转换模式描述了如何出于各种目的修改消息的内容。

图标名称用例
内容浓缩器图标“内容丰富器”如果消息始发者没有所有必需的数据项,如何与另一个系统通信?
内容过滤器图标“内容过滤器”当您只对几个数据项感兴趣时,如何简化处理大消息的处理?
存储在库中图标“声明检查EIP”我们如何在不牺牲信息内容的情况下减少跨系统发送的消息的数据量?
标准化器图标“规范化器”您如何处理在语义上等效但以不同格式到达的消息?
“排序”如何对邮件正文进行排序?

消息端点

消息端点表示消息传递通道与应用程序之间的联系点。消息端点显示的消息端点模式描述了可以在端点上配置的各种功能和服务质量。

图标名称用例
“消息映射器”如何在域对象和消息传递基础结构之间移动数据,同时使两者彼此独立?
事件驱动图标“事件驱动的消费者”当消息可用时,应用程序如何自动使用它们?
轮询消费者图标“轮询消费者”准备就绪后,应用程序如何使用消息?
竞争消费者图标“竞争消费者”消息传递客户端如何同时处理多个消息?
邮件调度程序图标“消息调度程序”单个通道上的多个使用者如何协调他们的消息处理?
选择性消费者图标“选择性消费者”消息使用者如何选择要接收的消息?
耐用的订阅者图标“持久订阅者”订户在不收听消息时如何避免丢失消息?
“全能消费者”消息接收者如何处理重复的消息?
交易客户端图标“事务客户端”客户如何通过消息传递系统控制其事务?
消息传递网关图标“消息传递网关”您如何封装从应用程序其余部分对消息传递系统的访问?
服务激活器图标“服务激活器”应用程序如何设计要由各种消息传递技术以及非消息传递技术调用的服务?

系统管理

系统管理 显示的系统管理模式描述了如何监视,测试和管理消息传递系统。

图标名称用例
丝锥图标系统管理您如何检查在点对点通道上传播的消息?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙子可可

你的鼓励是我创造的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值