Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口 或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。其核心的思想就是从一个from源头得到数据,通过processor处理,再发到一个to目的的.
这个from和to可以是我们在项目集成中经常碰到的类型:一个FTP文件夹中的文件,一个MQ的queue,一个HTTP request/response,一个webservice等等.
Camel可以很容易集成到standalone的应用,在容器中运行的Web应用,以及和Spring一起集成.
下面用一个示例,介绍怎么开发一个最简单的Camel应用.
Apache Camel 学习 简介02

上面的例子体现了一个最简单的路由功能,比如d:/temp/inbox/是某一个系统FTP到Camel所在的系统的一个接收目录.
d:/temp/outbox为Camel要发送的另一个系统的接收目录.
from/to可以是如下别的形式,读者是否可以看出Camel是可以用于系统集成中做路由,流程控制一个非常好的框架了呢?
from("file:d:/temp/inbox/?delay=30000").to("jms:queue:order");//delay=30000是每隔30秒轮询一次文件夹中是否有文件.
Apache Camel 学习 简介02

Apache Camel 学习 简介02

   Camel框架的核心是路由引擎,或者更确切地说是一个路由引擎建造者。它允许自定义路由规则,从中决定来源接受消息并确定如何处理和发送这些消息到其他目的地。Camel吸引我的地方也正是其灵活的路由,再佐以可插拔的组件,使其可以在不同的应用中灵活的传递、转换和控制消息。

介绍

    Camel允许您创建EIP(Enterpise Integration Patterns, 企业集成模式),以基于Java的DSL(Domain Specific Language, 域特定语言)或Fluent API,通过Spring或Blueprint的xml配置文件或者通过Scala DSL来实现路由和中介规则。这意味着无论是在Java、Scala或者是XML编辑器中都可以在IDE中使用自动提示从而智能地完成路由规则。

    Apache Camel使用URIs,因此它可以借助可插入的数据格式选项轻松的与任何类型的传输或消息传递模型(如HTTP、ActiveMQ、JMS、JBI、SCA、MINA或CXF)一起使用。Apache Camel是一个小型的库,具有最小的依赖性,可以轻松嵌入任何Java应用程序。无论使用何种传输方式,Apache Camel都使用相同的API,因此只需要学习一次API即可与开箱即用的所有组件进行交互。

Apache Camel具有强大的Bean绑定功能,可与Spring、CDI、Blueprint和Guice等流行框架无缝集成。

Apache Camel 学习 简介02

Apache Camel 学习 简介02

Camel消息模型

Apache Camel 学习 简介02

Apache Camel 学习 简介02

Apache Camel 学习 简介02

Apache Camel 学习 简介02

Apache Camel 学习 简介02

Apache Camel 学习 简介02

 

相关文章:

  • 2021-05-10
  • 2021-08-26
  • 2021-08-08
  • 2022-01-20
  • 2021-05-21
  • 2021-11-09
  • 2021-10-11
  • 2022-12-23
猜你喜欢
  • 2021-06-05
  • 2021-06-06
  • 2021-11-10
  • 2022-12-23
  • 2021-08-11
  • 2021-12-17
  • 2021-12-25
相关资源
相似解决方案