`

mule配置常用节点

    博客分类:
  • SOA
 
阅读更多
1 Mule-config.xml
示例模型:
<mule>
<model>
<service name="GreeterUMO">
<inbound....>
<filtering-router>
....
                 </filtering-router>
</inbound>
<component.... />
<outbound....>
.......
</outbound>
<default-service-exception-strategy>
.....
            </default-service-exception-strategy>
</service>
<service name="GreeterUMO2" initialState="stopped">
...
        </service>
</model>
</mule>

1.1 基本标签
Mule配置文件由以下标签组织成一颗XML元素树:
1.1.1 <model>
定义应用程序中的服务;
1.1.2 <service>
配置一个服务;
1.1.3 <description>
服务的描述内容;
1.1.4 <inbound>
配置入站路由,它们的端点以及入站转换器;
1.1.5 <outbound>
配置一个或多个出站路由,它们的端点以及出站转换器;
1.1.6 <async-reply>
配置一个异步应答路由,它用于异步请求/响应消息中;
1.1.7 <exception-strategy>
配置连接器或模型或服务上的错误处理策略;

1.2 配置设置
将服务组件编织成一个应用程序是由配置文件来完成的,Mule的配置设置是由开发人员负责的,它们包括:
1、服务组件的声明;
2、哪个服务上的端点将接收消息;
3、将消息引入到服务组件之前使用哪个转换器;
4、出站端点上的消息下一步改流向哪里;
5、消息的路由信息将其发送到下一个服务组件。

1.3 声明服务组件
1.3.1 <component>
Mule组件是通过指定实施类名配置的,Mule为组件接收的每个消息创建新的类实例,注意是一个特定的Java类而不是函数:
<component class="org.my.ServiceComponentImpl" />
1.3.2 <pooled-component>
Mule创建一批组件,共用组件配置,对象工厂创建一个单一的对象实例也可以指定:
<pooled-component class="org.my.ServiceComponentImpl" />
<component>
<singleton-object class="org.my.ServiceComponentImpl" />
</component>
1.3.3 <entry-point-resolver-set/>
Mule可以创建一个入口点分解器基于消息负载情况动态选择调用的函数:
<component class="org.my.PrototypeObjectWithMyLifecycle">
<entry-point-resolver-set>
<array-entry-point-resolver />
<callable-entry-point-resolver />
</entry-point-resolver-set>
</component>
1.3.4 <callable-entry-point-resolver>
这个入口点分解器用于组件实现org.mule.api.lifecycle.Callable接口,组件可以实现Callable接口废除一切动态解决方案,并调用接口函数进行替代;
1.3.5 <custom-entry-point-resolver-set>
这个自定义入口点分解器可以和实现了org.mule.api.model.EntryPointResolverSet接口的类一起实施,为了准确地在你的端点上指定函数,你可以在端点上使用函数参数,如:
<ejb:endpoint host="localhost" port="1099" object="SomeService"
method="remoteMethod" />
1.3.6 <log-component/>
Mule提供了多个简单有用的组件用于测试和初始化原型,如<log-component/>,它将所有接收到的消息输出到控制台中;

1.4 配置端点
1.4.1 <endpoint>
使用它声明一个全局范围的端点,在整个Mule应用程序中都可以使用,在一个服务中,"ref="用于引用全局端点:
<file:endpoint name="fileReader" reverseOrder="true"
comparator="org.mule.transport.file.comparator.OlderFirstComparator" />

<model>
<service name="Priority1">
<file:inbound-endpoint ref="fileReader" path="/var/prio1" />
......
</service>
<service name="Priority2">
<file:inbound-endpoint ref="fileReader" path="/var/prio2" />
......
</service>
</model>
1.4.2 <inbound-endpoint>
这是服务组件接收事件的通道,它包括使用的传输器,地址,路径或资源(任何有效的URI):
<inbound-endpoint address="udp://localhost:65432" />
<inbound-endpoint address="jms://test.queue" />
1.4.3 <outbound-endpoint>
这个是组件返回的数据被发送出去的通道;
<outbound-endpoint address="smtp://user:secret@smtp.host" />
<outbound-endpoint address="smtp://user:secret@smtp.host" />

1.5 配置入站路由
1.5.1 <selective-consumer-router>
这个路由在入站消息上应用一个或多个过滤器,符合要求的消息被转送到组件:
<inbound>
<selective-consumer-router>
<mulexml:jxpath-filter expression="msg/header/resultcode = 'success'" />
</selective-consumer-router>
<forwarding-catch-all-strategy>
<jms:endpoint topic="error.topic" />
</forwarding-catch-all-strategy>
</inbound>
1.5.2 <idempotent-receiver-router>
这个路由通过检查入站消息的唯一性消息ID确保服务接收的消息是唯一性的,ID可以使用idExpression属性中定义的表达式生成:
<inbound>
<secure-hash-idempotent-receiver-router
messageDigestAlgorithm="SHA26">
<simple-text-file-store directory="./idempotent" />
</secure-hash-idempotent-receiver-router>
</inbound>
1.5.3 <secure-hash-idempotent-receiver>
这个路由通过计算消息内容的散列值确保服务接收到的消息的唯一性:
<inbound>
<secure-hash-idempotent-receiver-router
messageDigestAlgorithm="SHA26">
<simple-text-file-store directory="./idempotent" />
</secure-hash-idempotent-receiver-router>
</inbound>

1.6 配置出站路由
1.6.1 <filtering-router>
这个路由使用过滤器确定消息是否匹配特定的标准;
<outbound matchAll="true">
<filtering-router>
<endpoint address="jms://deposit.queue" />
</filtering-router>
<filtering-router>
<jms:outbound-endpoint queue="large.deposit.queue" />
<mulexml:jxpath-filter expression="deposit/amount >= 100000" />
</filtering-router>
</outbound>
1.6.2 <pass-through-router>
这个路由匹配所有的消息,通过一个配置好的端点发送出去;
<outbound>
<pass-through-router>
<smtp:outbound-endpoint to="ross@muleumo.org" />
</pass-through-router>
</outbound>
1.6.3 <static-recipient-list-router>
这个路由用于从单个端点发送相同的消息到多个端点,或实施消息属性或有效负载确定的下一个目的地的路由滑动行为;
<outbound>
<static-recipient-list-router>
<payload-type-filter expectedType="javax.jms.Message" />
<recipients>
<spring:value>jms://orders.queue</spring:value>
<spring:value>jms://tracking.queue</spring:value>
</recipients>
</static-recipient-list-router>
</outbound>

1.7 配置传输器和连接器
以为传输器声明一个描述连接信息的端点URI的值:
<rmi:endpoint name="BadType" host="localhost" port="1099"
object="MatchingUMO" method="reverseString" />
<jms:inbound-endpoint queue="test.queue" />
<ssl:endpoint name="clientEndpoint" host="localhost" port="60198"
synchronous="true" />
<quartz:endpoint name="qEP6" repeatCount="10"
repeatInterval="1000" jobName="job" />
同样,可以使用<connector>元素定义一个连接器配置,Mule使用标准的组件,如Work Manager高效共享线程资源,并为线程使用提供更多控制,对于错误,你也要象事务行为一样声明一个异常策略:
<vm:connector name="VMConnector">
...
<default-connector-exception-strategy>
<vm:outbound-endpoint path="systemErrorHandler" />
</default-connector-exception-strategy>
</vm:connector>

1.8 配置转换器
可以配置一个本地或全局的转换器,本地转换器定义在端点上,而全局转换器是在需要的时候进行引用的,下面的代码定义了两个全局转换器:
<xm:xml-to-object-transformer name="XMLToExceptionBean"
returnClass="org.mule.example.errorhandler.ExceptionBean" />
<custom-transformer name="ExceptionBeanToErrorMessage"
class="org.mule.example.errorhandler.ExceptionBeanToErrorMessage"
returnClass="org.mule.example.errorhandler.ErrorMessage" />
1.8.1 <append-string-transformer>
在现有的字符串上追加了一个字符串:
<append-string-transformer name="myAppender"
message=" ... that's good to know!" />
1.8.2 <xslt-transformer>
通过XSLT处理XML负载:
<mulexml:xslt-transformer name="xslt"
xslFile="./conf/xsl/cd-listing.xsl">
<mulexml:context-property key="title"
value="#[header:ListTitle]" />
<mulexml:context-property key="rating"
value="#[header:ListRating]" />
</mulexml:xslt-transformer>







分享到:
评论

相关推荐

    mule基本节点解释

    ### Mule基本节点解释 #### 一、基本标签与配置结构 Mule 是一款非常强大的企业级集成平台,主要用于构建连接不同的系统和服务的应用程序。在 Mule 的配置文件(通常是 XML 文件)中,包含了多种标签来组织和配置 ...

    mule 3.2 节点详解

    ### Mule 3.2 节点详解 Mule 3.2 是一款非常流行的集成平台,它基于企业服务总线(Enterprise Service Bus, ESB)架构设计而成,能够帮助开发者轻松地构建复杂的集成解决方案。本文将详细介绍 Mule 3.2 中的关键...

    mule线程数量参数配置.zip_mule_mule 线程配置_mule设置并发数_参数_线程

    关于在tomcat上进行mule多线程数量参数配置

    MULE esb 节点使用说明中文文档

    ### MULE ESB 节点使用说明中文文档 #### MULE ESB 概述与部署 MULE ESB(Enterprise Service Bus)是一种强大的集成平台,用于构建高度可扩展的应用程序和服务。它允许开发人员轻松地连接不同的应用程序、API 和...

    mule -esb 源码

    `proxy.properties`则可能涉及到网络代理设置,如果Mule ESB需要通过代理服务器访问外部资源,此文件会包含代理的相关配置。 最后,`MULE_LICENSE.txt`是Mule ESB的许可协议文件,它详细阐述了软件的使用条款和条件...

    mule开发环境搭建和部署

    在config目录下新增一个sayHello-mule-config.xml配置文件,该文件用于定义Mule项目的配置信息。该文件的内容包括Mule项目的命名空间、SchemaLocation等信息。 四、Mule项目的配置和部署 在Mule项目中,需要配置...

    mule文档详解 mule

    Mule ESB使用XML或图形化的Mule Studio进行配置。开发者可以创建数据流,定义消息如何在各个服务之间流动,包括数据转换、错误处理和流控制。Mule的工作流程通常包括消息的接收、转换、路由和发送。 **5. 安全性** ...

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    MULE配置文档

    mule的配置文档 自己整理,很实用滴,希望大家可以和我一样少走歪路

    Mule与MQ集成

    - 在Mule配置文件(如`mule-config.xml`)中定义JMS连接工厂。 - 创建JMS收发消息的端点(Endpoints),用于消费和发布消息。 - 编写Mule流程,指定何时和如何发送和接收消息。 - 配置ActiveMQ的URL、用户名和密码等...

    mule web service exsample

    5. **Mule配置文件** ".project" 和 "mule-deploy.properties" 是Mule项目的元数据文件,分别用于Eclipse项目设置和Mule应用的部署属性。"mule-app.properties" 可能包含了应用级别的配置变量,这些变量可以在整个...

    MULE用户指南3.3

    2. **MULE配置与部署**:用户指南将详细介绍如何配置MULE实例,包括设置环境变量、安装和启动MULE服务器,以及部署MULE应用到不同的运行时环境,如MULE Standalone或CloudHub。 3. **连接器(Connectors)**:MULE ...

    Mule3.4入门学习

    首先,需要下载MuleStudio的最新版本,例如MuleStudio-for-win-32bit-3.5.0-201310031601.zip,然后解压到安装目录,设置工作空间,安装Mule ESB Runtimes for Studio插件。 三、Webservice发布 为了发布...

    MULE ESB-4.1企业版运行环境

    在描述中提到,“MULE ESB-4.1企业版运行环境”意味着这是一个完整的、预配置的环境,用户可以直接在其上运行由AnyPoint Studio开发的Mule应用。AnyPoint Studio是MuleSoft提供的一个集成开发环境(IDE),用于创建...

    mule-standalone-3.9.0.zip

    - 通过修改“conf/mule-deploy.properties”文件来配置应用属性和连接参数。 - 使用命令行工具或启动脚本(如“bin/mule.bat”或“bin/mule.sh”)启动Mule ESB。 5. **监控与管理**: - Mule ESB 3.9.0提供了一...

Global site tag (gtag.js) - Google Analytics