企业集成模式与ServiceMix--接收表模式
来源:互联网 发布:c语言指针题目 编辑:程序博客网 时间:2024/05/18 00:54
1.读者要求:
了解企业集成模式,了解ServiceMix.
2.接收表模式:
关于接收表模式在Mule中的实现,我已经作了简单介绍,见《企业集成模式与Mule--接收表模式》一文。
本文简要介绍接收表模式在ServiceMix中的实现以及简单应用。
3.实现:
下面简单地介绍接收表模式在ServiceMix中的实现
在ServiceMix中StaticRecipientList简单地实现了一个静态的接收表模式。
通过它可以将In-Only或者Robust-In-Only消息交互模式的消息转发到recipients列表,该列表中的接收者都可以接收到该消息。
其主要方法的代码片段:
....
//复制消息exchange,将消息in作为其副本
NormalizedMessage in = MessageUtil.copyIn(exchange);
//根据recipient的个数,同步或异步循环发送消息
for (int i = 0; i < recipients.length; i++) {
MessageExchange me = getExchangeFactory().createExchange(
exchange.getPattern());
recipients.configureTarget(me, getContext());
in.setProperty(RECIPIENT_LIST_COUNT, new Integer(
recipients.length));
in.setProperty(RECIPIENT_LIST_INDEX, new Integer(i));
in.setProperty(RECIPIENT_LIST_CORRID, exchange.getExchangeId());
//将消息in中的相关属性以及附件等内容拷贝到消息me中
MessageUtil.transferToIn(in, me);
//采用同步的方式发送消息me,该方法调用DeliveryChannel的sendSync()方法同步发送消息
//如果是采用同步的方式发送,则调用DeliveryChannel的send()方法异步步发送消息
sendSync(me);//同步发送
if (me.getStatus() == ExchangeStatus.ERROR && reportErrors) {
fail(exchange, me.getError());
return;
}
}
//将消息exchange的状态设置为ExchangeStatus.DONE,表明消息发送完毕
done(exchange);
.....
4.简单应用
在ServiceMix中使用静态接收表模式
<eip:static-recipient-list service="test:recipients" endpoint="endpoint">
<eip:recipients>
<eip:exchange-target service="recipient1" />
<eip:exchange-target service="recipient2" />
<eip:exchange-target service="recipient3" />
</eip:recipients>
</eip:static-recipient-list>
在此我们在static-recipient-list上设定了3个recipient,分别是recipient1,recipient2和recipient3。
ServiceMix会将消息分发给这3个recipient,我们可以在这3个recipient上接收到相同的消息。
- 企业集成模式与ServiceMix--接收表模式
- 企业应用集成与开源ESB产品ServiceMix和Mule介绍
- 企业应用集成与开源ESB产品ServiceMix和Mule介绍
- 企业应用集成与开源ESB产品ServiceMix和Mule介绍
- 模式集成与语义集成
- Camel In Action 第八章 企业集成模式
- activemq serviceMix集成学习
- 深圳企业模式观察与思考
- Eclipse中配置ServiceMix的远程调试模式
- JBPM与企业架构模式之单例模式
- 企业集成模式实践——用actviemq集成.net应用系统
- ServiceMix与Camel区别
- Mule与Servicemix比较
- Mule与Servicemix比较
- 企业应用架构模式
- 企业开发模式思考
- 企业应用架构模式
- 企业应用架构模式
- 修改Tomcat的端口------Alter Tomcat's port
- Socke网络编程、多线程与TIdAntiFreeze
- 常用安全
- AMBA、AHB、APB总线简介
- 测试工程师应该具备的知识体系
- 企业集成模式与ServiceMix--接收表模式
- 通过cURL获取web页面及http header信息
- Java学习-Eclipse中serialVersionUID
- 深度XP下载地址
- [软件调试----读书笔记]WinDBG中Command窗口最基本的操作
- 转载:SCOPE_IDENTITY、IDENT_CURRENT和@@IDENTITY比较
- 验证
- Flex - 用于选择时间范围的组件
- 领域模型中的manager