mule配置常用节点解释

更新时间:2023-05-06 02:15:30 阅读: 评论:0

1
示例模型:
<mule>
    <model>
        <rvice name="GreeterUMO">
            <>
                <filtering-router>
                    ....
                </filtering-router>
            </inbound>
            < />
            <>
                .......
            </outbound>
            <default-rvice-exception-strategy>
                .....
            </default-rvice-exception-strategy>
        </rvice>
        <rvice name="GreeterUMO2" initialState="stopped">
            ...
        </rvice>
    </model>
</mule>
1.1 基本标签
Mule配置文件由以下标签组织成一颗XML元素树:
1.1.1 <model>
定义应用程序中的服务;
1.1.2 <rvice>
配置一个服务;
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="ServiceComponentImpl" />
1.3.2 <pooled-component>
Mule创建一批组件,共用组件配置,对象工厂创建一个单一的对象实例也可以指定:
        <pooled-component class="ServiceComponentImpl" />
        <component>
            <singleton-object class="ServiceComponentImpl" />
        </component>
1.3.3 <entry-point-resolver-t/>
Mule可以创建一个入口点分解器基于消息负载情况动态选择调用的函数:
        <component class="PrototypeObjectWithMyLifecycle">
            <entry-point-resolver-t>
                <array-entry-point-resolver />
                <callable-entry-point-resolver />
            </entry-point-resolver-t>
        </component>
1.3.4 <callable-entry-point-resolver>
这个入口点分解器用于组件实现org.mule.api.lifecycle.Callable接口,组件可以实现Callable接口废除一切动态解决方案,并调用接口函数进行替代;
1.3.5 <custom-entry-point-resolver-t>
这个自定义入口点分解器可以和实现了org.del.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" reverOrder="true"
    comparator="parator.OlderFirstComparator" />
<model>
    <rvice name="Priority1">
        <file:inbound-endpoint ref="fileReader" path="/var/prio1" />
        ......
    </rvice>
    <rvice name="Priority2">
        <file:inbound-endpoint ref="fileReader" path="/var/prio2" />
        ......
    </rvice>
</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://ur:cret@smtp.host" />
    <outbound-endpoint address="smtp://ur:cret@smtp.host" />
1.5 配置入站路由
1.5.1 <lective-consumer-router>
这个路由在入站消息上应用一个或多个过滤器,符合要求的消息被转送到组件:
    <inbound>
        <lective-consumer-router>
            <mulexml:jxpath-filter expression="msg/header/resultcode = 'success'" />
        </lective-consumer-router>
        <forwarding-catch-all-strategy>
            <jms:endpoint topic="pic" />
        </forwarding-catch-all-strategy>
    </inbound>
1.5.2 <idempotent-receiver-router>
这个路由通过检查入站消息的唯一性消息ID确保服务接收的消息是唯一性的,ID可以使用idExpression属性中定义的表达式生成:
    <inbound>
        <cure-hash-idempotent-receiver-router
            messageDigestAlgorithm="SHA26">
            <simple-text-file-store directory="./idempotent" />
        </cure-hash-idempotent-receiver-router>
    </inbound>
1.5.3 <cure-hash-idempotent-receiver>
这个路由通过计算消息内容的散列值确保服务接收到的消息的唯一性:
    <inbound>
        <cure-hash-idempotent-receiver-router
            messageDigestAlgorithm="SHA26">
            <simple-text-file-store directory="./idempotent" />
        </cure-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="" />
        </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>

本文发布于:2023-05-06 02:15:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/536532.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   组件   服务   路由   端点   配置   用于   使用
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图