我不明白骆驼到底是干什么的。

如果你能用101个单词介绍一下骆驼:

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

请解释一下骆驼是什么。


当前回答

如果您了解企业集成模式,ApacheCamel是一个实现所有EIP的集成框架。

您可以将Camel部署为web容器中的独立应用程序。

基本上,如果您必须使用不同的协议和技术集成多个应用程序,那么可以使用Camel。

其他回答

ApacheCamel是一个实现所有企业集成模式的轻量级集成框架。您可以使用所需的模式轻松地集成不同的应用程序。您可以使用Java、SpringXML、Scala或Groovy。

Apache Camel在Java虚拟机(JVM)上运行。。。ApacheCamel的核心功能是其路由引擎。它根据相关路由分配消息。路由包含流和集成逻辑。它是使用EIP和特定DSL实现的。

如果您有5到10分钟的时间,我通常建议大家阅读Jonathan Anstey的《与Apache骆驼的集成》。这是一篇写得很好的文章,对Camel的一些概念进行了简要介绍和概述,并用代码示例实现了一个用例。乔纳森在信中写道:

ApacheCamel是一个开源Java框架,专注于使集成更容易,更易于开发人员访问。它通过提供:所有广泛使用的企业集成模式(EIP)的具体实现连接到各种传输和API易于使用的领域特定语言(DSL)将EIP和传输连接在一起

《行动中的骆驼》(Camel in Action,第二版)还有一个免费章节,在第一章中介绍了骆驼。乔纳森和我是那本书的合著者。

基于类比

以骆驼为基础的路线可以很容易地理解,只要你站在航空公司老板的立场(例如:美国航空公司、捷特航空公司)。

“您的航空公司”的目的是将“乘客”从一个“城市”运送到世界上的另一个城市。您使用来自不同“飞机公司”(如波音、空客、HAL)的飞机运送乘客。

您的航空公司使用从城市出发的“机场”登机,并使用到城市的机场登机。一名乘客可能会“旅行”到多个城市,但无论在哪里,他们都必须通过机场才能在航空公司的飞机和城市之间旅行。

请注意,从城市“出发”的乘客基本上是“抵达”航空公司的飞机。而一名乘客“抵达”城市,基本上就是离开飞机。由于我们站在航空公司所有者的立场上,“到达乘客”和“离开乘客”这两个术语与我们基于城市视角的传统概念相反。

每个城市的相同“机场”基础设施供“出发”乘客和“抵达”乘客使用。机场为离港旅客提供“离港基础设施”,这与为抵达旅客提供的“抵达基础设施”不同。

由于航空公司在飞机内提供的各种“便利设施”,乘客在旅行时可以继续进行一天的活动。

除此之外,您的航空公司还为您提供休息室设施,以进行特殊处理,如“了解当地语言”,或为您的“旅行”做好准备。

让我们将上面使用的几个单词/短语替换为以下内容:

您的航空公司:阿帕奇骆驼

飞机公司:运输机制

航空公司的飞机:阿帕奇骆驼的基本运输机制

运载:路线

乘客:消息;

城市:系统;

机场:骆驼组件;

了解当地语言:类型转换;

离开:生产,生产

到达:消耗,消耗

行程:布线

设施:提供

替换单词后,您将得到以下内容:

“Apache Camel”的目的是将“消息”从一个“系统”路由到世界上的另一个系统。Apache camel使用不同的传输机制进行消息路由。

Apache Camel使用“from”系统的“Camel based Component”拾取消息,并使用“to”系统的基于Camel的Component”丢弃消息。一条消息可以路由到多个系统,但它们必须通过“基于骆驼的组件”才能在“Apache骆驼的底层传输机制”和系统之间传输。

请注意,从系统“生成”的消息实质上被“消费”到ApacheCamel的底层传输机制中。系统消耗的消息本质上是由“ApacheCamel的底层传输机制”产生的。

既然我们试图理解骆驼,我们就必须从骆驼的角度开始思考。因此,术语“消费者信息”和“生产者信息”的含义与我们基于系统视角的传统概念相反。

“生产者消息”和“消费者消息”使用相同的“基于骆驼的组件”编码基础结构。“基于骆驼的组件”为“生产者消息”提供“生产者端点”,为“消费者消息”提供了“消费者端点”。

当邮件被路由时,Camel可以对其进行处理。

除此之外,Camel还提供了“类型转换”等特殊功能。。。

是的,这可能有点晚了。但有一点需要补充的是,Camel实际上是一个工具箱,而不是一整套功能。在开发和需要进行各种转换和协议转换时,您应该记住这一点。

Camel本身依赖于其他框架,因此有时您需要了解这些框架,以便了解哪种框架最适合您的需求。例如,有多种方法来处理REST。这一点一开始可能会有点混乱,但一旦开始使用和测试,您就会感到轻松,对不同概念的了解也会增加。

创建项目描述不应该很复杂。

我说:

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

维基百科说:

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

看见这不难吧?