`
jnn
  • 浏览: 283451 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Camel 中的几个重要概念之 CamelContext与CamelTemplate

阅读更多

CamelContext

CamelContext是对Camel 运行时的一个抽象, 一般来说一个应用里面会有一个CamelContext 对象。一个典型的Camel 应用按照下面几个步骤执行。

   1. 创建一个CamelContext对象。
   2. 向CamelContext对象中添加Endpoints或者是Components
   3. 向CamelContext对象中添加路由(routes)规则
   4. 调用CamelContext的start() 方法,这样可以启动Camel内部有关消息发送,接收,处理所使用的线程。
   5. 当调用CamelContext的stop() 方法时,Camel 会将妥善关闭所有endpoint和Camel内部的线程。注意在调用CamelContext.start() 方法时并不一定阻塞, 而是在启动完每个Comonent和Endpoint的内部线程后start() 方法返回。而CamelContext.stop()方法会等待所有Endpoint和Component的内部线程都结束后 stop() 方法才返回。如果你没有在你的Camel 应用程序中调用CamelContext.start() 方法,那么由于内部线程并没有被创建那些消息将不会被处理。 如果你没有在你的Camel应用程序中调用CamelContext.stop()方法,那你你的应用将不会正常退出。如果你在一个JUnit 测试没有调用CamelContext.stop()方法,这可能会造成消息不能被完整地处理,而导致测试运行失败。


CamelTemplate

Camel曾经使用一个叫CamelClient的类来发送消息, 后来为了和其他的open-source项目类似功能的模块例如Spring中 TransactionTemplate 和 JmsTemplate, 命名一致而改名为CamelTemplate。
这个CamelTemplate(注现在已经改名为ProducerTemplate)类对CamelContext进行了一个简单的封装。在CamelTemplate中有向一个Endpoint(将在Endpoint中讨论)发送Message或者Exchange的方法, 这部分的内容将在 Message和Exchange中进行讨论。 CamelTemplate提供了一条向Camel内部路由中的Endpoint发送消息的道路, 这样消息就可以在Camel内部的路由规则(参考 Routes,RouteBuilders 和JAVA DSL)里面流动而到达指定的目标节点了。

分享到:
评论
2 楼 jnn 2009-11-06  
在Camel2.0 中你可以webconsole动态修改route。
在Camel2.1 中你还可以通过JMX来修改route, endpoint的配置信息。
1 楼 worthysu 2009-11-05  
没有实际使用Camel的项目经验,不过觉得使用Java DSL方式来配置消息路由是很强大的一个功能,希望以后能用到它。
请教Camel中,关于使用Java DSL方式配置消息路由的问题:
如果业务场景是用户在系统运行时期望对消息路由有更多干预,也就是Endpoints、Components以及Routes是可以在运行时增删改的。
现在实现这样的功能,是否需要:

1. 创建一个CamelContext对象。
2. 向CamelContext对象中添加Endpoints或者是Components
3. 向CamelContext对象中添加路由(routes)规则
4. 调用CamelContext的start() 方法,这样可以启动Camel内部有关消息发送,接收,处理所使用的线程。
5. 当调用CamelContext的stop() 方法时,Camel 会将妥善关闭所有endpoint和Camel内部的线程。
6. 向CamelContext对象中添加增删改后的Endpoints或者是Components
7. 向CamelContext对象中添加增删改后的路由(routes)规则
8. 继续4

Camel有没有运行时动态管理的功能?

相关推荐

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

    Apache Camel 开发使用指南中文版

    Camel in action(camel实战)

    Apache Camel is a Java framework that lets you implement the standard enterprise integration patterns in a few lines of code. With a concise but sophisticated DSL you snap integration logic into your ...

    [Camel实战].(Camel.in.Action).Claus.Ibsen&Jonathan;.Anstey.文字版

    中文名: Camel 实战 原名: Camel in Action 作者: Claus Ibsen Jonathan Anstey 资源格式: PDF 版本: 英文文字版/更新源代码 出版社: Manning书号: 9781935182368发行时间: 2010年12月 地区: 美国 语言: 英文 简介: ...

    Camel_Camel3Camel6函数_

    Camel3 Camel6函数等matlab源代码

    ApacheCamel-JDBC

    ApacheCamel-JDBC Apache Camel JDBC组件 代码样例Demo

    camel文档

    camel 文档

    apache-camel-demo

    apache-camel 开发sample Apache Camel是一个基于规则路由和中介引擎,提供企业集成模式的Java对象(POJO)的...在面向服务的体系结构的项目中,Camel通常与Apache ServiceMix, Apache ActiveMQ以及Apache CXF一同使用。

    Camel实战中文版第四章.pdf

    Camel In Action一书第四章的中文版。

    Camel服务集成,服务编排操作文档

    Camel服务集成,服务编排操作文档

    简化软件集成:一个ApacheCamel教程

    简化软件集成:一个ApacheCamel教程在本教程中,您将了解集成大型软件的一些最大挑战,以及ApacheCamel如何轻松解决这些难题。在您的软件工程中,您可能至少做了一次以下操作:1.确定应启动数据发送的业务逻辑片段。...

    Camel in Action.zip

    Apache Camel 作为集成项目的利器,针对应用集成场景的抽象出了一套消息交互模型,...与传统的企业集成服务总线(ESB)相比,Apache Camel的核心库非常小巧(是一个只有几M的jar包),可以方便地与其他系统进行集成。

    Camel in Action ch1

    1: Meet Camel - FREE 2: Routing with Camel - AVAILABLE Part 2 Core Camel 3: Transforming Data with Camel - AVAILABLE 4: Using Beans with Camel - AVAILABLE 5: Error Handling - AVAILABLE 6:...

    spring-boot-camel-config:Spring Boot Camel配置快速入门

    在命名空间中创建或更改名为camel-config的ConfigMap(包含名为application.properties的属性)后,将触发应用程序上下文刷新事件,并且日志将反映新的配置。 样品ConfigMap ( sample-configmap.yml )被包含在该...

    camel in action 中文版 第一章

    camel in action 中文版 第一章 费了很大力才找到中文版本,网上现在大多是英文版本的,上传此资粮供大家参考学习。

    camel 手册

    apache camel 的参考手册(英文版)。内容详尽,有代码,有实例。

    ApacheCamel-Timer

    09-ApacheCamel-Timer Apache Camel Timer组件 定时器 代码Demo

    camel, Apache camel 镜像.zip

    camel, Apache camel 镜像 Apache camel 是基于已知企业集成模式的强大开放源代码集成框架,它具有强大的Bean集成。简介flex允许你创建企业集成模式,以基于基于Java的域特定语言( 或者 Fluent API ) 或者基于 Sc

    Mastering.Apache.Camel

    An advanced guide to Enterprise Integration using Apache Camel About This Book Integrate your applications with Apache Camel and enhance efficiency and scalability Master all the EIPs supported by ...

    ApacheCamel-FTP

    ApacheCamel-FTP ApacheCamel-FTP Apache Camel FTP组件 Demo 样例

    Camel in action PDF和源码

    Camel in action 一书的PDF电子书 和源代码 The book is divided into three parts: ■ Part 1—First steps ■ Part 2—Core Camel ■ Part 3—Out in the wild

Global site tag (gtag.js) - Google Analytics