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

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

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

请解释一下骆驼是什么。


当前回答

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

我说:

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

维基百科说:

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

看见这不难吧?

其他回答

Camel有助于路由、转换和监控。

它使用Routes;其可以描述为:

当服务总线接收到特定消息时,它将通过任何服务/代理目的地(如队列/主题)将其路由。这条路径称为路线。

例子:您的股票应用程序得到了分析师的一些输入,它将通过应用程序/web组件进行处理,然后将结果发布给所有感兴趣的/注册的成员,以进行特定的股票更新。

基于类比

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

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

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

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

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

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

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

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

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

飞机公司:运输机制

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

运载:路线

乘客:消息;

城市:系统;

机场:骆驼组件;

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

离开:生产,生产

到达:消耗,消耗

行程:布线

设施:提供

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

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

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

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

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

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

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

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

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

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

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

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

HTH

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

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