Apache Camel

1, 什么是Camel

编辑
camel首先是一个规则引擎。其次才是一个开源项目。
Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和中介引擎,提供企业集成模式的Java对象的实现,通过 应用程序接口(或称为陈述式的Java 领域特定语言(DSL))来配置路由和中介的规则。领域特定语言意味着Apache Camel支持你在的集成开发工具中使用平常的, 类型安全的,可自动补全的Java代码来编写路由规则,而不需要大量的XML配置文件。同时,也支持在Spring中使用XML配置定义路由和中介规则。
Camel提供基于规则的路由(Routing)引擎
from().to().to()
这种表述可以使用Camel定义的DSL语言,xml语言以及scala语言。如下例:
from(“file:path").to("activemq:queue:queuename") 将某文件,读入并写入到ActiveMQ的JMS中。
form("file:path").to("ftp://url")将一个文件,读入并写入到ftp某目录中。

2, 几个基本概念

编辑

2.1Endpoint

Camel中的Endpoint类似webservice中的endpoint,即某个资源的位置。Camel使用URI来定位一个endpoint. 比如上例中的from(“file://xxxx”), 可以是file:///edi/po/?include=.*\\.txt, 代表/EDI/PO/下的所有txt文件,即为一个endpoint

2.2 Component

Camel的内置组件(用户也可以按照Camel的接口约定,来定义自己的component), 用以提供对某种协议的资源访问的支持,如上例中的file即为component, 其提供了对本地文件系统访问的支持,activemq是另一个component, 提供了camel访问以ActiveMQ实现的JMS的直接访问能力。
1 timer timer://vv?period=500
如果书写不正确,报错:No component found with scheme: timeruuu
2 file file:d:/temp/inbox?delay=30000
file:g:/temp/inbox/?scheduler=quartz2&scheduler.cron=0+0+0/1+*+*+?"
3 zookeeper from("zookeeper://localhost:39913/somepath/somenode").to("mock:result");
camel-zookeeper依赖
<groupId>org.apache.camel</groupId>
<artifactId>camel-zookeeper</artifactId>
4 ftp ftp://localhost/inbox?username=yorker&password=123456
<route id="ftp">
<from uri="ftp://127.0.0.1/data/test?username=coco&amp;password=coco&amp;delay=10000"/>
<process ref="action"/>
</route>
5 sql <from uri="timer:sql?period=5s" />
6 多次转换路由 from(file:path).to(ftp://url).to(ftp://url)
  7 从mq获取数据源 from(activemqRemote:queue:queuename).to(ftp://url)
  8 组合用法 from().log().process().log().to() // camel里面的process和jms里面的process是一个interface
[1]  

2.3,Routing Language

Camel 提供了3种方式定义Routing,
a, Java 语言兼容的DSL语言
举例:
from("file:edifiles?include=.*\\.txt")
.to("smooks://classpath: smooks-config.xml")
.bean(wrapper, "wrap")
.to("activemq:queue:tempQ")
.end();
此例子中,是读取edifiles文件夹下的所有txt文件,然后路由至 smooks组件,smooks是一个文件转换组件,完成后,调用bean组件,bean是一个可以调用用户自己定义的POJO的组件,完成后,通过activemq组件,路由至一个名为tempQ的JMS队列。
该语法是java兼容的,可以正常在Eclipse等Java IDE中编辑并编译。
B,Spring语法兼容的XML配置文件
<route>
<from uri="file://inputdir/"/>
<convertBodyTotype="java.lang.String"/>
<to uri="activemq:queue:tempQ "/>
</route>
此例子中,读取inputdir文件夹下的文件,然后转换成String,写入名为tempQ的JMS队列。

Camel官方内置组件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值