Apache Camel到底是什么?

 

问题描述:

我不明白exactly到底在做什么。

如果你能用101个字来介绍exactly:

  • 到底是什么
  • 它如何与用Java编写的应用程序交互?
  • 它与服务器一起使用吗?
  • 它是一个独立程序吗?
  • 请解释一下骆驼是什么。

 

第 1 个答案:

如果你有5到10分钟的时间,我通常建议人们阅读Jonathan Anstey撰写的与Apache Camel的集成。这是一篇写得很好的文章,简要介绍了Camel的一些概念并对其进行了概述,并且使用代码示例实现了用例。乔纳森在其中写道:

Apache Camel是一个开放源代码Java框架,致力于使集成更容易并且对开发人员更易于访问。为此,它提供了:

  • 所有广泛使用的企业集成模式(EIP)的具体实现
  • 连接到各种传输和API
  • 易于使用的领域特定语言(DSL)将EIP连接在一起并进行传输

 

第 2 个答案:

我说:

Apache Camel是消息传递技术与路由的结合。它将消息传递的起点和终点连接在一起,从而允许将消息从不同的源传输到不同的目的地。例如:JMS-> JSON,HTTP-> JMS或渠道FTP-> JMS,HTTP-> JMS,JSON-> JMS

维基百科说:

Apache Camel是基于规则的路由和中介引擎,它使用API(或声明性Java域特定语言)来配置路由和中介规则,从而提供了基于Java对象的企业集成模式实现。特定领域的语言意味着Apache Camel可以使用常规Java代码在IDE中支持类型安全的路由规则智能完成,而无需使用大量的XML配置文件。尽管还支持Spring内部的XML配置。


 

第 3 个答案:

我说:

Apache Camel是消息传递技术与路由的结合。它将消息传递的起点和终点连接在一起,从而允许将消息从不同的源传输到不同的目的地。例如:JMS-> JSON,HTTP-> JMS或渠道FTP-> JMS,HTTP-> JMS,JSON-> JMS

维基百科说:

Apache Camel是基于规则的路由和中介引擎,它使用API(或声明性Java域特定语言)来配置路由和中介规则,从而提供了基于Java对象的企业集成模式实现。特定领域的语言意味着Apache Camel可以使用常规Java代码在IDE中支持类型安全的路由规则智能完成,而无需使用大量的XML配置文件。尽管还支持Spring内部的XML配置。我以一种更易于理解的方式描述了这一点…

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

让我们从大概已经知道的内容开始:Singleton模式,Factory模式等;它们只是组织问题解决方案的方式,而本身并不是解决方案。四人帮在他们出版《设计模式》一书时,对其他人进行了分析和提取。他们节省了我们中的一些人在思考如何最好地构建代码结构方面的大量精力。

就像四人帮一样,Gregor Hohpe和Bobby Woolf撰写了《企业集成模式》(EIP)一书,他们在书中提出并记录了一组新的模式和蓝图,以帮助我们最佳地设计大型基于组件的系统,其中可以使用组件。在同一进程或另一台计算机上运行。

他们基本上建议我们将系统构建为面向消息的系统-组件之间使用消息作为输入和输出相互通信,而绝对没有其他消息。它们向我们展示了一套完整的模式,我们可以从中选择并在将组成整个系统的不同组件中实施。

那么什么是Apache Camel?

Apache Camel为你提供了EIP的接口,基础对象,通常需要的实现,调试工具,配置系统以及许多其他帮助程序,当你要实施解决方案以遵循EIP时,将为你节省大量时间。

以MVC为例。MVC在理论上非常简单,我们可以在没有任何框架帮助的情况下实现它。但是良好的MVC框架为我们提供了现成的结构,并花了很多功夫,并在创建大型MVC项目时考虑了你需要的所有其他“方面”,这就是我们大多数时候使用它们的原因。

这正是Apache Camel用于EIP的原因。对于想要实施其解决方案以遵循EIP的人们来说,这是一个完整的生产就绪框架。


如何命名你创建的不同类/接口?有时我没有实现信息要添加到实现名称中,例如接口FileHandler和类SqlFileHandler。发生这种情况时,我通常使用“普通”名称来命名接口,例如Truck并命名实际的类T ...