`

mule & seda 学习四

    博客分类:
  • SOA
阅读更多
从前,从前

程序跑的太慢,对mule有点误解

jaxb解析xml在高压力下会有互相等待的问题,可能是使用的方式不对

使用mule简单就好了,不要太复杂,任何一个功能最好分成2个stage就好(容易查找内存堵塞)

<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.mulesource.org/schema/mule/jdbc/2.2" xmlns:xm="http://www.mulesource.org/schema/mule/xml/2.2"
xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2" xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
http://www.mulesource.org/schema/mule/jdbc/2.2 http://www.mulesource.org/schema/mule/jdbc/2.2/mule-jdbc.xsd
http://www.mulesource.org/schema/mule/xml/2.2 http://www.mulesource.org/schema/mule/xml/2.2/mule-xml.xsd
http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd
http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd">

<context:property-placeholder location="classpath:conf/webserviceClientUrl.properties" />
<stdio:connector name="SystemStreamConnectorActive"
promptMessageCode="3" messageDelayTime="1000" />

<spring:beans>
<spring:import resource="classpath:conf/applicationContext.xml" />
</spring:beans>

<configuration>
<default-dispatcher-threading-profile
maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />
<default-receiver-threading-profile
maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />
<default-service-threading-profile
maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />
</configuration>

<jdbc:connector name="jdbcConnectorActive" pollingFrequency="1000" dataSource-ref="dataSource">

<!-- 激活 -->
<jdbc:query key="orderQry"
value="select /*+ FULL(c) */
c.cust_order_id
from customer_order c
where exists (select b.cust_order_id
from order_item b
where b.order_item_cd = 'T20'
and b.status = '1501'
and b.cust_order_id = c.cust_order_id)
and c.status = '040'
and rownum between 0 and 100" />
<jdbc:query key="orderQry.ack"
value="update CUSTOMER_ORDER set STATUS='110' where CUST_ORDER_ID = #[map-payload:CUST_ORDER_ID] " />

<!-- 竣工 -->
<jdbc:query key="orderCompletionQry"
value="select a.cust_order_id from customer_order a where a.status = '120' and rownum between 0 and 100" />
<jdbc:query key="orderCompletionQry.ack"
value="update CUSTOMER_ORDER set STATUS='899' where CUST_ORDER_ID = #[map-payload:CUST_ORDER_ID] " />

</jdbc:connector>

<model name="jdbcInboundActionModel">
<!-- 集团改造 -->
<!-- 激活流程 start -->
<service name="jdbcService">
<inbound>
<jdbc:inbound-endpoint queryKey="orderQry" />
</inbound>
<component class="com.tydic.mule.component.OrderProcessComponent" />
<outbound>
<pass-through-router>
<vm:outbound-endpoint address="vm://activeXML" />
</pass-through-router>
</outbound>
</service>

<!-- 废弃的组件
<service name="creatXMLService">
<inbound>
<vm:inbound-endpoint address="vm://orders" />
</inbound>
<component class="com.tydic.mule.component.ActiveXMLBuilderComponent" />
<outbound>
<pass-through-router>
<vm:outbound-endpoint address="vm://activeXML" />
</pass-through-router>
</outbound>
<threading-profile maxThreadsActive="200" maxThreadsIdle="100" threadWaitTimeout="400" threadTTL="6000000" poolExhaustedAction="RUN"></threading-profile>
</service>
-->

<service name="sendXMLService">
<inbound>
<vm:inbound-endpoint address="vm://activeXML" />
</inbound>
<component class="com.tydic.mule.component.ActiveXMLSendComponent" />
</service>
<!-- 激活流程 end -->

<!-- 竣工流程 start -->
<service name="jdbcCompletionService">
<inbound>
<jdbc:inbound-endpoint queryKey="orderCompletionQry" />
</inbound>
<component class="com.tydic.mule.component.OrderCompletionComponent" />
</service>
<!-- 竣工流程 end -->

</model>
</mule>

分享到:
评论

相关推荐

    MuleEsb开源框架简介.pdf

    7. 使用基于 SEDA 处理模型的高度可伸缩的企业服务器。 8. 强大的基于 EIP 模式的事件路由机制等。 Mule ESB 的整体结构图: Mule 通过 Transports/Connectors 与外围的异构系统连接,提供 Routing(路由)、...

    mule(java)开发简介

    #### 四、Mule 的使用方式 - **作为 Java Application:** 可以直接作为一个独立的 Java 应用程序运行。 - **作为 Web Application:** 可以部署在支持 Servlet 的容器中,如 Tomcat 或 Jetty。 - **作为 ESB...

    MuleEsb开源框架简介

    无论是对于初学者还是经验丰富的开发者,Mule ESB都提供了广泛的学习资源,如《Mule in Action》书籍、官方文档以及DZone Refcardz等,帮助用户深入了解并掌握这一强大的集成框架。随着技术的不断进步,Mule ESB持续...

    mule esb 的简单介绍

    4. **Web服务支持**:Mule ESB能够处理基于Axis或Glue的Web服务,支持SOAP和其他Web服务标准,允许服务间的互操作性。 5. **灵活的部署结构**:Mule ESB提供了多种部署拓扑,包括Client/Server、P2P(对等)、ESB...

    应用集成开源框架MULE的源代码

    Mule 的核心是一个基于SEDA的服务容器,该容器管理被称为通用消息对象(Universal Message Objects /UMO)的服务对象,而这些对象都是POJO。所有UMO和其他应用之间的通信都是通过消息端点(message endpoint)来进行...

    MULE开发文档

    它采用的是基于SEDA(Staged Event-Driven Architecture)的服务容器,有效地管理服务对象——即所谓的UMO(Universal Message Objects)。UMO本质上是普通的Java对象(POJO),因此,它们易于理解和开发。 MULE...

    MULE IN ACTION

    Mule采用了SEDA(Staged Event-Driven Architecture)模型,这是一种事件驱动的架构模式,通过将应用程序分成多个阶段来实现高吞吐量和可伸缩性。 8. 强大的基于EIP模式的事件路由机制: 事件驱动模式(EIP)允许...

    Mule是一个企业服务总线(ESB)消息框架

    4.支持Axis或者Glue的Web Service. 5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network. 6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中. 7.使用...

    ESB解决方案-mule分享.docx

    四、Mule 介绍 Mule 是一种开源的 ESB 框架,提供了基本的 ESB 功能,包括消息传递、服务集成、数据转换等。Mule 的整体结构包括 Model、Service、Transport、Transformer 等组件。Model 表示托管各个服务的运行时...

    SOA企业级业务组件

    - **SEDA (Staged Event-Driven Architecture)**: 基于事件驱动的架构,用于高效处理大量并发消息。 - **同步消息**: 直接等待响应的消息处理模式。 - **异步消息**: 不等待响应即继续执行后续任务的消息处理模式。 ...

Global site tag (gtag.js) - Google Analytics