java - 到底什么是Apache Camel ?

  显示原文与译文双语对照的内容

我不明白 Camel的确切含义。

如果你能给 101个单词介绍 Camel:

  • 到底是什么?
  • 它如何与用Java编写的应用程序交互?
  • 是与服务器一起使用的东西?
  • 是一个独立的程序?

请解释 Camel Camel是什么。

时间:

如果你有 5到 10分钟,我一般建议人们用 乔纳森 Anstey阅读这个与 Apache camel的集成。 这是一个写得很好的文章,简要介绍了一些camel概念,并实现了一个带有代码示例的用例。 其中,乔纳森 写入:

"Apache camel 是一个开源的Java框架,它专注于使集成更加容易,开发者更容易访问。 它通过提供:

  • 所有广泛使用的企业集成模式 ( eip )的具体实现
  • 各种传输和api的连接
  • 易于使用的领域特定语言( dsl ) 将eip和传输结合在一起"

还有一个 Camel的自由章节,它在第一章引入了 Camel 。 乔纳森 是与我有关的书的集合者。

创建项目描述 web description不应该是复杂的。

我说:

Apache camel的消息传递技术与路由粘附。 它将消息传递开始和结束点连接起来,允许从不同的源传送消息到不同的目的地。 例如:JMS -> JSON,HTTP -> JMS或者漏斗-> JMS,HTTP -> JMS,JSON -> JMS

维基百科说:

Apache camel 是一个rule-based路由和中介引擎,它使用一个 API ( 或者声明式Java域特定语言) 来为企业集成模式提供一个基于Java对象的实现,用于配置路由和中介规则。 域特定语言意味着 Apache camel 可以使用常规的Java代码在你的IDE中支持路由规则的type-safe智能完成,但在 spring 中还支持XML配置。

看到了这并不难?

我将以一种更容易访问的方式来描述这一点。

为了理解 Apache camel 是什么,你需要理解企业集成模式是什么。

让我们从假设已经知道的内容开始: 单件模式,工厂模式等等;它们只是组织解决方案的方法,但它们不是解决方案本身。 这些模式进行了分析和提取我们的四人帮,当他们出版的书: 设计模式 。他们保存了一些我们在思考如何最好地构造代码方面的巨大努力。

很像"四人帮",格雷戈尔Hohpe和鲍比·伍尔夫创作这本书企业集成模式 ( EIP ) 他们提出和文档一套新的模式和蓝图如何最佳设计大型component-based系统组件可以运行在相同的过程或在一个不同的机器。

他们建议我们结构系统是面向消息 --组件与对方沟通使用消息作为输入和输出,绝对没有别的。 它们向我们展示了一套完整的模式,我们可以从不同的组件中选择并实现这些模式,从而形成整个系统。

,所以是 Apache camel

Apache camel 为你提供了 web eip的接口,基本对象,通常需要的实现,调试工具,配置系统,以及许多其他帮助,可以在你想实现解决方案的时候节省大量的时间。

在理论上,MVC是相当简单的,我们可以在没有任何框架帮助的情况下实现它。 但良好的mvc框架为我们提供结构ready-to-use已经额外英里和考虑所有其他"侧面"你需要的东西,当你创建一个大型mvc项目,这就是为什么我们大多数时候使用它们。

这正是 Apache camel 为eip所做的。 它是一个完整的production-ready框架对于那些想遵循循环实现他们的解决方案。

简而言之:

当需要连接/集成系统时,可能需要连接到一些数据源,然后处理这些数据以满足业务需求。

为了这样做:

1 ) 你可以开发定制的程序( 可能会耗费大量的时间和精力,为其他开发人员维护和维护)

2 ),你可以使用 Apache camel 以标准方式使用( 它拥有已经为你开发的大部分连接器,你只需要设置它并插入你的逻辑- 称为进程):

Camel将帮助你:

  1. 使用来自任何源/格式的数据
  2. 处理这里数据
  3. 将数据输出到任何源/格式

通过使用 Apache camel,你可以方便地将你的系统与另一个开发人员联系起来。

Apache camel 是用企业集成模式开发的。 模式帮助你以良好的方式集成系统:- )

在你试图理解 Apache camel 之前,你需要理解的一件事情是企业集成模式。 并不是每个人都知道他们。 虽然你可以阅读企业集成模式书,但是更快速的方法是阅读一些类似于企业应用程序集成编辑器的维基百科文章。

你已经阅读并理解了主题区域,你更可能理解 Apache camel的用途

HTH

如果你了解企业集成模式,Apache camel 是一个实现所有eip的集成框架。

你可以在web-container中将Camel作为独立应用程序部署。

基本上,如果你需要集成多个具有不同协议和技术的应用程序,你可以使用 Camel 。

另一个透视图的定义:

Apache camel 是一个集成框架。 它由一些Java库组成,这些库帮助你在Java平台上实现集成问题。 这意味着什么以及它与api的不同和企业服务总线( ESB )的区别在我的文章"什么时候使用 Apache camel"中描述。

图表比数千个描述好。 图展示了Camel的结构。

enter image description here

这是一次尝试。

你知道像 Webmethods,我可以 Seebeyond,Tibco BW,IBM代理之类的东西。 它们都有助于企业中的集成解决方案。 这些工具通常由企业应用程序集成( EAI ) 工具已知。

大部分的拖放工具都是围绕这些技术构建的,你必须在Java中编写适配器。 这些适配器代码要么未经测试,要么在测试过程中的工具/自动化很差。

就像编程中的设计模式一样,你也有用于通用集成解决方案的企业集成模式。 它们是由 Gregor Hohpe和 Bobby Woolf同名的图书。

尽管可以实现使用一个或者多个EIP的集成解决方案,但Camel是一个尝试在你的代码基础中使用一个 XML,Java,Groovy或者 Scala 来实现的。

Camel通过它的丰富的DSL和路由机制支持本书中列出的所有企业集成模式。

所以,Camel是一个与其他EAI工具竞争的technoloy,对测试你的集成代码有更好的支持。 由于域特定语言( dsl ),代码简洁。 即使是商业用户也可以阅读它,而且它是免费的,让你有生产力。

有很多框架可以帮助我们进行消息传递和解决消息中的问题。 一个这样的产品是 Apache camel 。

大多数常见的问题都证明了解决方案称为设计模式。 消息传递的设计模式是企业集成 patterns(EIPs),在这里很好地解释了 Apache camel 帮助我们使用eip实现解决方案。

集成框架的优势在于它能够帮助我们通过eip或者其他模式,传输的数量和组件以及 Apache camel 在列表顶部的开发方便

每个框架都有它自己的优势 Apache camel的一些特殊特性如下。

  1. 它提供了编码就是在许多dslJavadsl和 spring 基于xml的dsl,很受欢迎。
  2. 易用易用,易于使用。
  3. Fuse IDE是一个帮助你通过用户界面编写代码的产品
...