`
gaojingsong
  • 浏览: 1182477 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Apache 之Camel 介绍】

阅读更多

Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns.

 

Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL. This means you get smart completion of routing rules in your IDE, whether in a Java, Scala or XML editor.



 

Apache Camel uses URIs to work directly with any kind of Transport or messaging model such as HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF, as well as pluggable Components and Data Format options. Apache Camel is a small library with minimal dependencies for easy embedding in any Java application. Apache Camel lets you work with the same API regardless which kind of Transport is used - so learn the API once and you can interact with all the Components provided out-of-box.

 

Apache Camel provides support for Bean Binding and seamless integration with popular frameworks such as CDI, Spring, Blueprint and Guice. Camel also has extensive support for unit testing your routes.

 

The following projects can leverage Apache Camel as a routing and mediation engine:

Apache ServiceMix - a popular distributed open source ESB and JBI container

Apache ActiveMQ - a mature, widely used open source message broker

Apache CXF - a smart web services suite (JAX-WS and JAX-RS)

Apache Karaf - a small OSGi based runtime in which applications can be deployed

Apache MINA - a high-performance NIO-driven networking framework

 

Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口 或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。其核心的思想就是从一个from源头得到数据,通过processor处理,再发到一个to目的的.

这个from和to可以是我们在项目集成中经常碰到的类型:一个FTP文件夹中的文件,一个MQ的queue,一个HTTP request/response,一个webservice等等.Camel可以很容易集成到standalone的应用,在容器中运行的Web应用,以及和Spring一起集成.

 

Apache Camel十一个Java库和引擎,有多种不同的整合模式,然而他并不是BPMN或者ESB,虽然可以在此引擎下实现他们。Apache Camel是一个编程人员调节、整合问题的工具。

 

Message

 

org.apache.camel.Message是Camel中一个基本的包含数据和路由的实体,Messages包含了

 

唯一的识别(Unique Identifier)--java.lang.String类型

头信息(Headers)--会提供一些内容的提示,头信息被组织成名值对的形式,string-->Object

内容(body)是一个Object类型的对象,这就意味着,你要确保接收器能够理解消息的内容。当消息发送器和接收器使用不同的内容格式的时候,你可以使用Camel的数据转换机制将其转换为一个特定的格式。在许多情况下预先定义类型可以被自动转换。

错误标记(fault flag)使用来标记正常或者错误的标记,通常由一些标准类定义,例如(WSDL)

Exchange

 

org.apache.camel.Exchange 是一个消息之间通信的抽象的会话。下面列出的就是这样一个会话,使得组件更为全面

 

Exchange ID

MEP 一个类似InOnly或者InOut的消息交换模式。当模式是InOnly的时候,消息交换中只包含IN-Message

Exception在路由过程中的任何异常

Properties有点类似与message 的headers ,但是他们将持续到整个exchange结束,Camel还可能利用他们进行一些特殊的通信。

IN-Message

OUT-Message

  • 大小: 70.9 KB
0
0
分享到:
评论

相关推荐

    Apache Camel中文开发使用指南.zip

    Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式,使得开发者可以轻松地定义数据路由和处理规则,从而实现系统间的通信。这个"Apache Camel 开发使用...

    ApacheCamel-JDBC

    Apache Camel 的强大之处在于其灵活的集成能力。JDBC组件可以与其他组件(如定时任务、消息队列等)配合使用,形成更复杂的业务流程。 通过学习和实践"Apache Camel-JDBC",开发者可以更好地利用Camel的灵活性和...

    apache-camel-3.7.0_数据同步_

    以下将详细介绍Apache Camel在数据同步中的核心知识点: 1. **组件**:Apache Camel 包含了大量的预构建组件,如JDBC(Java Database Connectivity)用于与数据库交互,FTP/FTPS/SFTP用于文件传输,MQTT和AMQP用于...

    apache-camel-1.0.0.zip

    Apache Camel 是一个流行的开源集成框架,它允许开发者在各种企业集成模式之间建立连接,从而实现应用程序之间的通信。这个"apache-camel-1.0.0.zip"文件是Apache Camel的1.0.0版本的发布包,包含了该版本的所有组件...

    apache-camel-1.3.0.tar.gz

    Apache Camel 是一个流行的开源集成框架,它提供了一种声明式的方式来定义业务流程和路由规则,使得开发者能够构建复杂的分布式系统。这个"apache-camel-1.3.0.tar.gz"文件是Apache Camel的一个早期版本,具体为...

    姜宁-我和Apache Camel这些年/Years of Apache Camel and I

    在文档中提到的“Apache Camel历史”部分,介绍了Camel框架的发展历程。Apache Camel的首次提交发生在2007年,由James Strachan贡献,初始版本为Camel routing library。随后在2008年,Willem Ning Jiang提交了更新...

    apache-camel-1.6.0.tar.gz

    Apache Camel 是一个流行的开源企业集成库,它提供了一种简单且声明式的模型来定义和执行企业应用程序集成(EAI)的路由和转换规则。这个压缩包 "apache-camel-1.6.0.tar.gz" 包含了 Apache Camel 的1.6.0版本,这是...

    apache-camel-demo

    apache-camel 开发sample Apache Camel是一个基于规则路由和中介引擎,提供企业集成模式的Java对象(POJO)的实现,通过应用程序接口(或称为陈述式的Java领域特定语言(DSL))来配置路由和中介的规则。领域特定语言...

    Apache Camel 框架之---JMS路由.docx

    Apache Camel 框架之 JMS 路由 Apache Camel 框架实现的 JMS 路由是指使用 Apache Camel 框架来实现 Java 消息服务(JMS)的路由。JMS 是一个 Java API,用于在 Java 应用程序之间进行消息传递。Apache Camel 框架...

    apache-camel-2.5.0.zip

    Apache Camel 是一个强大的开源集成框架,它允许开发者以声明式的方式定义路由和转换数据的规则。这个"apache-camel-2.5.0.zip"压缩包包含的是Apache Camel的2.5.0版本,该版本发布于2011年,是Camel发展历史上的一...

    apache camel 集成组件 教程

    《Camel in Action》是一本由 Claus Ibsen 和 Jonathan Anstey 共同撰写的书籍,这本书是学习 Apache Camel 的重要参考资料之一。书中涵盖了以下内容: - **基础知识介绍:** 第一部分“First Steps”通过两个章节...

    apache-camel-2.10.0-src.zip

    Apache Camel 是一个流行的开源集成框架,它用于构建企业级应用程序,尤其在处理和路由消息时。这个"apache-camel-2.10.0-src.zip"文件是Apache Camel 2.10.0版本的源代码包,对于开发者来说,它是深入理解Camel工作...

    Apache Camel 开发指南.rar

    Apache Camel 是一个强大的开源企业级集成框架,它简化了在Java应用程序之间建立复杂的消息传递流程。这个"Apache Camel 开发指南"压缩包包含了丰富的资源,帮助开发者深入理解Camel的各个方面,包括路由表达式、...

    Apache Camel Developer's Cookbook

    书籍的作者之一Scott Cranton是一位开源软件贡献者和传教士,他从Apache Camel版本1.5发布时就开始使用它,并且在中间件软件方面拥有超过20年的商业经验,角色包括开发者、架构师和顾问。在FuseSource工作期间,现在...

    apache-camel-2.12.0-src.zip

    Apache Camel 是一个流行的开源集成框架,它提供了一种声明式的方式来定义业务流程和路由规则,使得开发者能够构建复杂的分布式系统。这个"apache-camel-2.12.0-src.zip"压缩包包含了Apache Camel 2.12.0版本的源...

    01-ApacheCamel-HelloWorld

    在这个"01-ApacheCamel-HelloWorld"示例中,我们将深入理解如何使用 Camel 实现一个简单的 HTTP "Hello World" 应用。 Apache Camel 的核心理念是“编程通过配置”,它提供了丰富的组件库,可以与各种协议、API 和...

    Apache Camel 源码分析.rar

    Apache Camel 是一个强大的开源企业集成库,它提供了一种声明式的方式来定义路由和转换数据,使得构建复杂的分布式系统变得更加简单。Camel 使用一种名为“DSL”(Domain Specific Language)的语法规则,允许开发者...

    ApacheCamel-FTP

    在提供的 "03-ApacheCamel-FTP" 压缩包文件中,可能包含了一些关于如何使用 Apache Camel FTP 组件的示例代码或配置文件。这些示例可以帮助初学者快速理解和实践 FTP 组件的功能。通常,示例可能涵盖以下方面: 1. *...

Global site tag (gtag.js) - Google Analytics