apache camel 条件路由

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route id="example">
        <from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&amp;synchronous=true" />
        <log message="The expected operation is :: ${headers.operationName}" />
        <choice>
            <when>
                <simple>${headers.operationName} == ‘RegisterUser‘</simple>
                    <bean ref="processor" method="processMessage"/>
                <to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
            </when>
            <when>
                <simple>${headers.operationName} == ‘UpdateUser‘</simple>
                <!-- Do the update user logic here -->
                <bean ref="processor" method="updateUser" />
            </when>
        </choice>
    <to uri="cxf:bean:myTargetEndpoint"/>
    </route>
</camelContext> 
时间: 2024-10-29 04:34:06

apache camel 条件路由的相关文章

架构设计:系统间通信(36)——Apache Camel快速入门(上)

1.本专题主旨 1-1.关于技术组件 在这个专题中,我们介绍了相当数量技术组件:Flume.Kafka.ActiveMQ.Rabbitmq.Zookeeper.Thrift .Netty.DUBBO等等,还包括本文要进行介绍的Apache Camel.有的技术组件讲得比较深入,有的技术组件则是点到为止.于是一些读者朋友发来信息向我提到,这个专题的文章感觉就像一个技术名词的大杂烩,并不清楚作者的想要通过这个专题表达什么思想. 提出这个质疑的朋友不在少数,所以我觉得有必要进行一个统一的说明.这个专题

架构设计:系统间通信(38)——Apache Camel快速入门(下1)

======================= (接上文<架构设计:系统间通信(37)--Apache Camel快速入门(中)>) 3-5-2-3循环动态路由 Dynamic Router 动态循环路由的特点是开发人员可以通过条件表达式等方式,动态决定下一个路由位置.在下一路由位置处理完成后Exchange将被重新返回到路由判断点,并由动态循环路由再次做出新路径的判断.如此循环执行直到动态循环路由不能再找到任何一条新的路由路径为止.下图来源于官网(http://camel.apache.or

架构设计:系统间通信(37)——Apache Camel快速入门(中)

========================== (接上文<架构设计:系统间通信(36)--Apache Camel快速入门(上)>) (补上文:Endpoint重要的漏讲内容) 3-1-2.特殊的Endpoint Direct Endpoint Direct用于在两个编排好的路由间实现Exchange消息的连接,上一个路由中由最后一个元素处理完的Exchange对象,将被发送至由Direct连接的下一个路由起始位置(http://camel.apache.org/direct.html)

架构设计:系统间通信(39)——Apache Camel快速入门(下2)

======================== (接上文:<架构设计:系统间通信(38)--Apache Camel快速入门(下1)>) 4-2-1.LifecycleStrategy LifecycleStrategy接口按照字面的理解是一个关于Camel中元素生命周期的规则管理器,但实际上LifecycleStrategy接口的定义更确切的应该被描述成一个监听器: 当Camel引用程序中发生诸如Route加载.Route移除.Service加载.Serivce移除.Context启动或者

[每日一学]apache camel简介

apache camel 是轻量级esb框架.如下是它的架构图: 它有几个比较重要的概念就是: endpoint,所谓的endpoint,就是一种可以接收或发送数据的组件.可以支持多种协议,如jms,http,file等. 另一个重要的概念就是processor,它是用来处理具体业务逻辑的组件. 还有一个是:route,用来路由,指示数据从哪里来到哪里去,中间用哪个processor处理. 而processor之间用exchange对象来传送数据,有点像jms,通俗一点就像上学时传的小纸条,记住

Apache Camel 与 Spring Boot 集成,通过FTP定时采集、处理文件

1.概要: 本项目主要是通过在Spring平台上配置Camel.FTP,实现定时从FTP服务器下载文件到本地.解析文件.存入数据库等功能. 2.搭建空项目: Spring Boot有几种自动生成空项目的机制:CLI.Spring tool suite.网站Spring Initializr,我们选择第三个. 访问网站http://start.spring.io/,如下图 在dependencies添加依赖包的时候,在框中输入camle.jdbc.mysql会自动弹出提示,确认即为选中,如下图:

Apache Camel分解与聚合

在使用Camel时,你可能会使用到分解与聚合,例如当你向消息队列发送一个很大的文件的时候,你可能出于文件大小限制或效率的考量,需要将一个文件分解为若干文件包分别发送,在接收到接收到所有文件包后再合并为一个完整的文件. 分解即将一个消息分解为若干份(消息),然后可以对其进行单独处理,如下图: 要实现分解功能,则需要在路由定义中添加SplitDefinition,也就是要调用ProcessorDefinition.split方法,split方法主要是接收一个Expression对象,org.apac

Apache Camel系列(1)----使用场景

Apache Camel是一个基于Enterprise Integration Pattern(企业整合模式,简称EIP)的开源框架.EIP定义了一些不同应用系统之间的消息传输模型,包括常见的Point-to-Point,Pub/Sub模型.更多关于EIP的信息,可以参见这里 Apache Camel主要提供了以下功能: 1,实现了EIP的大部分模式,如果你要在不同的应用系统之间以不同的方式传递消息,那么你可以从Apache Camel中找到解决反感. 2,提供了大量Component(组件),

Apache Camel框架入门示例

Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和中介引擎,提供企业集成模式的Java对象的实现,通过应用程序接口(或称为陈述式的Java领域特定语言(DSL))来配置路由和中介的规则.领域特定语言意味着Apache Camel支持你在的集成开发工具中使用平常的,类型安全的,可自动补全的Java代码来编写路由规则,而不需要大量的XML配置文件.同时,也支持在Spring中使用XML配置定义路由和中介规则. Camel提供的基于规则的路由(Routing)引擎,可