Mule学习(三、MULE ESB配置模式)

Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。

一、简单服务模式(simple service pattern)

简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。

简单服务模式通过simple-service 元素配置,主要的元素属性包括:

属性

说明

address

服务监听的地址,如vm:in

component-class

Component的实现类

type

direct: 默认;

jax-ws: 将component暴露为soap式的web service(component必须基于jax-ws的注解),address一般为Http Transport;

jax-rs: 将component暴露为rest式的web service(component必须基于@Path的注解),address一般为Http或Servlet Transport

代码示例:

Mule针对服务请求接入可以做额外的处理,比如增加Transformer配置进行数据转换。

二、桥接模式(bridge pattern)

桥接模式用于在inbound endpoint和outbound endpoint之间建立直接连接,不需要component提供业务逻辑。

桥接模式通过bridge元素配置,主要属性包括:

属性

说明

inboundAddress

服务请求接入地址

outboundAddress

服务接出的实际地址

exchange-pattern

request-response: 默认,返回处理结果;

one-way: 单向

transacted

true: 在向outbound endpoint分发时使用事务;

false: 不使用事务

代码示例:

Mule在接入、接出的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。如果使用事务控制,对于异构的协议之间的事务需要有支持XA的事务控制器。

三、校验器模式(validator pattern)

校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果。通过校验的服务请求被异步分发给处理方。

校验器模式通过validator元素配置,主要属性包括:

属性

说明

inboundAddress

服务请求接入地址

outboundAddress

服务接出地址

ackExpression

表达式,用于构建服务请求被接收时的信息

nackExpression

表达式,用于构建服务请求被拒绝时的信息

errorExpression

@since 3.0.1

表达式,用于构建在服务请求分发出错时的信息

validationFilter-ref

过滤器的引用,也可以使用子元素指定

用于确定服务请求是否被接收

代码示例:

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">     

 

 

注:Mule的表达式后续补充。

四、 web服务代理模式(web service proxy pattern)

Web服务代理模式用于将Web Service请求直接转发至远程目标Web Service服务端,Mule本身不提供实际的Web Service。

Web服务代理模式通过ws-proxy元素配置,主要属性包括:

属性

说明

inboundAddress

Mule对外提供的地址

outboundAddress

Web Service的实际地址

代码示例:

 

Mule在转发的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。

 

你可能感兴趣的:(Mule)