前段时间和一些朋友聊过Apache Camel , 他们都反映一个问题就是有关Camel构架的介绍文档很少。其实在Camel发行包中所带的文档Camel Manual 就有一段对Camel内部设计有一个比较好的介绍。我在这里把其中大部分的内容 翻译成了中文,希望能对大家了解Camel有所帮助。
Endpoint
Endpoint这个词以前经常被用来描述进程间通信。例如,在客户端与服务器之间的通讯,客户端是一个Endpoint和服务器是另外一个 Endpoint。根据不同的情况下,一个Endpoint可能指的地址,如一个TCP通信的(主机:端口)对,也可能是指与这个地址相对应的一个软件实体。例如,如果大家使用“ www.example.com:80 ”来描述一个Endpoint。这些Endpoint可能是指实际的端口上的主机名称(即地址),也可能是指与地址相关的的网页服务器(即在这个地址之上运行的软件地址)。通常情况下,这种地址和在这个地址之上运行的软件之前的区别并不是一个重要问题。
一些中间件技术可以使一些软件实体的绑定在相同的物理地址上。例如, CORBA是一种面向对象的远程过程调用( RPC )的中间件标准。如果一个CORBA的服务器进程包含几个对象,客户端可以与这些在同一物理地址(主机:端口)之上的任意对象进行通讯,但当客户端想与特定对象进行通讯是, 需要指定这个对象的逻辑地址(在CORBA中称为IOR)。 IOR是由物理地址(主机:端口),以及一个唯一识别的对象在其服务器进程标识所组成。(IOR还包含了与此本次讨论无关其他一些额外的信息。)当谈论CORBA的时候,有些人可能会使用“endpoint”来描述CORBA的服务器的物理地址,而其他人可能使用Endpoint来描述一个CORBA对象的逻辑地址,和其他人可能会使用这个词来描述下面这些:
* CORBA的服务器进程的物理地址(主机:端口)
* CORBA对象的逻辑地址(主机:端口加上编号)
* CORBA的服务器进程(相对重量级的软件实体)
* 一个基于CORBA对象(一个轻量级的软件实体)
正因为如此,你可以看到Endpoint这个词至少在两方面是模糊的。首先,它可能是指一个地址或联络软件实体在该地址。其次,粒度上可能是模糊的:一个重量级与轻量级的软件实体,或物理地址与逻辑地址。了解了Endpoint这个名词在不同场景下的不同描述可以帮助我们更好地理解为什么Camel中的 Endpoint。
Camel中的Endpoint支持许多不同的通信技术。以下是Camel所支持Endpoint。
* 一个JMS队列。
* 一个Web服务。
* 一个文件。文件可能听起来不是一个典型的Endoint端点。但是你可以这么想,一些应用系统会把信息写到一个文件中,然后另一个应用程序可能读取该文件获得这一信息。
* 一个FTP服务器。
* 一个电子邮件地址。客户可以发送邮件到电子邮件地址,和一台服务器可以读取的这个从邮件服务器传入的邮件。
* 一个POJO (普通旧Java对象)。
建议还是好好读读Camel的wikihttp://cwiki.apache.org/CAMEL/
其中camel 和 mule的区别 http://cwiki.apache.org/CAMEL/how-does-camel-compare-to-mule.html
你的那个需求可以用 camel-jms component 来解决 http://camel.apache.org/jms.html
当然也可以用ActiveMQ 5.x 中包含的 camel activemq component http://camel.apache.org/activemq.html 来实现。
分享到:
相关推荐
Apache Camel 是一个强大的中间件框架,专为Java开发者设计,用于构建集成解决方案。它通过一个称为"规则引擎"的机制,使得处理来自不同源头(如VM、HTTP、FTP、JMS、文件系统等)的事件和信息变得简单。Apache ...
接上文EndpointDirect用于在两个编排好的路由间实现Exchange消息的连接,上一个路由中由最后一个元素处理完的Exchange对象,将被发送至由Direct连接的下一个路由起始位置(http://camel.apache.org/direct.html)。...
在这个专题中,我们介绍了相当数量技术组件:Flume、Kafka、ActiveMQ、Rabbitmq、Zookeeper、Thrift、Netty、DUBBO等等,还包括本文要进行介绍的ApacheCamel。有的技术组件讲得比较深入,有的技术组件则是点到为止。...
接上文动态循环路由的特点是开发人员可以通过条件表达式等方式,动态决定下一个路由位置。在下一路由位置处理完成后Exchange将被重新返回到路由判断点,并由动态循环路由再次做出新路径的判断。...
如:jetty、file、activemq、ftp、http、log、并行、分支、发送邮件、接收邮件、seda队列、timer定时器、netty4、quartz2定时器、zookeeper操作,只是简单案例,方便学习, 适合入门和研究camel。不喜勿喷...
- **入门示例**:通过一个简单的示例来演示如何快速启动并运行Camel应用程序。 - **第2章:使用Camel进行路由** - **基本概念**:讲解路由的基本原理以及Camel中用于构建路由的组件。 - **高级路由策略**:深入...
- 快速入门:引导读者通过一个简单的例子快速开始使用Camel。 - 架构介绍:深入解释Camel的内部架构和工作原理。 - 企业集成模式:详细介绍了Camel支持的各种企业集成模式。 - CookBook:提供了一系列可复用的集成...
- **快速入门概述**:这部分介绍了如何通过简单的例子来开始使用 Apache Camel,适合初学者快速了解其基本用法。 #### 三、开始使用 - **安装与环境搭建**:这部分详细讲解了如何安装 Apache Camel 以及如何设置...
《Manning.Camel.in.Action》全书分为三个主要部分,涵盖了从入门到高级应用的全部内容: 1. **第一部分:初识Camel** - 第1章介绍了Camel的基本概念和工作原理,包括如何在项目中引入Camel,以及通过简单的示例...
### 快速入门指南 为了快速开始使用Apache Camel,读者可以从本章节的一些简单示例入手。这些示例将引导用户了解如何设置环境、创建基本的路由和处理消息传递。 ### 结论 Apache Camel 2.8.0版本为企业级集成提供...
使用ConfigMap和Secrets的Spring-Boot Camel快速入门本快速入门演示了如何使用Kubernetes ConfigMap和Secrets配置Spring-Boot应用程序。 路由会生成示例消息,这些示例消息将传递到通过src/main/resources/...
综上所述,《Camel in Action》不仅是一本理论书籍,更是一本实用指南,它为开发者提供了从入门到精通所需的所有知识和技能。无论您是新手还是有经验的开发者,都可以从中获得宝贵的经验和灵感。
### Apache Camel 2.4.0 用户手册关键知识点解析 #### 一、引言 **Apache Camel** 是一个强大的开源集成框架,它基于已知的企业集成模式(Enterprise Integration Patterns,简称 EIP)来实现强大的 Bean 集成能力...
本书适合入门学习,所有例子都有源码 1.Servicemix环境安装和配置 2.Eclipse开发环境安装搭建 3.用Bundle对应用组件模块化 4.Camel的应用和例子 Bundle之间的消息传递, Errorhandling 负载均衡 。。。。。。 5....
对于初次接触Apache Camel的开发者来说,官方文档提供了详细的入门指南,帮助快速上手。首先,安装和配置好所需的环境,然后按照官方文档中的示例进行实践操作,熟悉Apache Camel的基本用法。此外,还可以参考相关的...
这会帮助新手快速入门,并理解Camel的路由和转换机制。 第二部分是“Core Camel(核心Camel)”,这部分深入讲解了Camel的高级特性。它包括路由规则的详细定义、数据转换、使用Bean进行集成、错误处理和测试等关键...
- CAMEL的入门快速指南提供了一个基础的路线图,帮助开发者快速开始使用CAMEL。 - 官方用户指南提供了详细的架构介绍、集成模式、Cookbook以及各种教程和附录等丰富的学习资源。 - 此外,官方鼓励开发者访问...