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

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

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

请解释一下骆驼是什么。


当前回答

从另一个角度定义:

ApacheCamel是一个集成框架。它由一些Java库组成,帮助您在Java平台上实现集成问题。这意味着什么,以及它与一方的API和另一方的企业服务总线(ESB)的区别,在我的文章“何时使用ApacheCamel”中进行了描述。

其他回答

基于类比

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

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

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

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

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

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

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

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

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

飞机公司:运输机制

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

运载:路线

乘客:消息;

城市:系统;

机场:骆驼组件;

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

离开:生产,生产

到达:消耗,消耗

行程:布线

设施:提供

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

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

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

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

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

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

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

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

就像一条管道

From---->To

在两者之间,可以添加尽可能多的通道和管道。水龙头可以是任何类型的用于数据流和引导流的路线的自动或手动。

它支持并实现了所有类型和类型的处理。对于相同的处理,有很多方法,因为它有很多组件,每个组件也可以使用不同的方法提供所需的输出。

例如,文件传输可以使用移动或复制的文件类型,也可以从文件夹、服务器或队列中进行。

-from-->To
   - from-->process-->to
   - from-->bean-->to
   - from-->process-->bean-->to
   -from-->marshal-->process-->unmarshal-->to

从/到----文件夹、直接、seda、vm可以是任何内容

另一种观点(基于更基本的数学主题)

最通用的计算平台是图灵机。

图灵机有问题。所有输入/输出数据都保存在图灵机内。在现实世界中,我们的图灵机外部有输入源和输出汇,通常由我们无法控制的系统控制。也就是说,这些外部系统将使用任何期望的数据调度器以任何格式随意发送/接收数据。

问题:我们如何使独立的图灵机器以最通用的方式相互交流,以便每个图灵机器将其对等机器视为输入数据源或输出数据汇?

答:使用骆驼、骡、BizTalk或任何其他ESB来抽象完成不同的“物理”(或虚拟软件)图灵机之间的数据处理。

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

我说:

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

维基百科说:

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

看见这不难吧?

在尝试理解ApacheCamel之前,您需要了解的一件事是企业集成模式。并不是每个领域的人都真正意识到了这些问题。虽然你当然可以阅读《企业集成模式》这本书,但了解它们的更快方法是阅读维基百科中关于企业应用程序集成的文章。

如果你已经阅读并理解了主题领域,你将更有可能理解Apache Camel的目的

HTH