MULE ESB配置模式(二)
来源:互联网 发布:80年代网络歌曲大全 编辑:程序博客网 时间:2024/06/06 13:20
Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。
6.1 简单服务模式(simple service pattern)
简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。
图 简单服务模式
简单服务模式通过simple-service 元素配置,主要的元素属性包括:
属性说明address服务监听的地址,如vm:incomponent-classComponent的实现类typedirect: 默认;
jax-ws: 将component暴露为soap式的web service(component必须基于jax-ws的注解),address一般为Http Transport;
jax-rs: 将component暴露为rest式的web service(component必须基于@Path的注解),address一般为Http或Servlet Transport代码示例:
<simple-service name="simple-service" address="vm://simple.in" component-class="demo.mule.umo.Echo" />
Mule针对服务请求接入可以做额外的处理,比如增加Transformer配置进行数据转换。
6.2 桥接模式(bridge pattern)
桥接模式用于在inbound endpoint和outbound endpoint之间建立直接连接,不需要component提供业务逻辑。
图 桥接模式
桥接模式通过bridge元素配置,主要属性包括:
属性说明inboundAddress服务请求接入地址outboundAddress服务接出的实际地址exchange-patternrequest-response: 默认,返回处理结果;
one-way: 单向
transactedtrue: 在向outbound endpoint分发时使用事务;
false: 不使用事务
代码示例:
<bridge name="queue-to-topic" transacted="true" inboundAddress="jms://myQueue" outboundAddress="jms://topic:myTopic" />
Mule在接入、接出的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。如果使用事务控制,对于异构的协议之间的事务需要有支持XA的事务控制器。
6.3 校验器模式(validator pattern)
校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果。通过校验的服务请求被异步分发给处理方。
图 校验器模式
校验器模式通过validator元素配置,主要属性包括:
属性说明inboundAddress服务请求接入地址outboundAddress服务接出地址ackExpression表达式,用于构建服务请求被接收时的信息nackExpression表达式,用于构建服务请求被拒绝时的信息errorExpression@since 3.0.1
表达式,用于构建在服务请求分发出错时的信息validationFilter-ref过滤器的引用,也可以使用子元素指定
用于确定服务请求是否被接收代码示例:
<validator name="integer-validator" inboundAddress="vm://validator.in" ackExpression="#[string:GOOD:#[message:payload]@#[context:serviceName]]" nackExpression="#[string:BAD:#[message:payload]@#[context:serviceName]]" outboundAddress="vm://test-service.in"> <payload-type-filter expectedType="java.lang.Integer" /> </validator>
注:Mule的表达式后续补充。
6.4 web服务代理模式(web service proxy pattern)
Web服务代理模式用于将Web Service请求直接转发至远程目标Web Service服务端,Mule本身不提供实际的Web Service。
图 web服务代理模式
Web服务代理模式通过ws-proxy元素配置,主要属性包括:
属性说明inboundAddressMule对外提供的地址outboundAddressWeb Service的实际地址代码示例:
<ws:proxy name="ws-proxy" inboundAddress="http://localhost:7006/services/Echo" outboundAddress="http://localhost:8000/services/Echo?method=echo"> </ws:proxy>
Mule在转发的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。
- MULE ESB配置模式(二)
- MULE ESB配置模式
- MULE ESB 配置(三)
- MULE ESB 配置(三)
- Mule ESB 学习笔记 配置模式
- [SOA] Mule ESB 3.x 入门(二)—— 配置(spring, properties, log4j)
- Mule ESB Service 配置摘要
- Mule ESB Endpoints配置摘要
- Mule ESB Component配置摘要
- Mule ESB Endpoints配置摘要
- mule esb exception(一)
- Mule ESB-在架构中的模式应用
- Mule ESB
- mule esb
- Mule ESB
- mule esb 安装,配置及运行examples
- Mule ESB Configuration Patterns 配置摘要
- 一步步了解ESB (二) Mule ESB-Basic Studio Tutorial
- JSP页面,响应和请求编码全解
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- nyoj77 开灯问题
- 使用 jquery 获取一组或者单个 checkbox 的选中状态的id
- linux找不到共享库解决办法
- MULE ESB配置模式(二)
- random_shuffle函数
- servlet中web.xml配置详解
- java的InputStream
- TCP协议之疑难杂症
- iOS之UITextView的使用——自定义选择文本后的菜单
- 文件映射IO(mmap-mprotect-msync-munmap)函数
- python邮件加附件发送模块
- MiniGUI中freetype库的支持