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

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

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

请解释一下骆驼是什么。


当前回答

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

大多数常见问题都有被称为设计模式的解决方案。消息传递的设计模式是企业集成模式(EIP),这里对此进行了很好的解释。Apache camel帮助我们使用EIP实现我们的解决方案。

集成框架的优势在于它能够通过EIP或其他模式为我们提供方便,传输和组件的数量以及Apache camel在开发上的优势

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

它提供了许多DSL中的编码,即流行的JavaDSL和基于Spring xml的DSL。易于使用且易于使用。Fuse IDE是一种帮助您通过UI编写代码的产品

其他回答

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

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

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

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

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

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

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

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

我想用一种更容易理解的方式来描述这一点。。。

为了理解什么是ApacheCamel,您需要了解什么是企业集成模式。

让我们从我们可能已经知道的开始:Singleton模式、Factory模式等;它们只是组织解决问题的方法,但它们本身并不是解决方案。当“四人帮”出版他们的书《设计模式》时,他们为我们其他人分析并提取了这些模式。他们为我们中的一些人节省了大量的精力来思考如何优化代码结构。

与“四人帮”一样,Gregor Hohpe和Bobby Woolf撰写了《企业集成模式》(Enterprise Integration Patterns,EIP)一书,他们在书中提出并记录了一组新的模式和蓝图,说明我们如何最好地设计基于组件的大型系统,其中组件可以在同一进程上运行,也可以在不同的机器上运行。

他们基本上建议我们将系统构造为面向消息的——其中组件之间使用消息作为输入和输出进行通信,而不是其他任何东西。它们向我们展示了一套完整的模式,我们可以从中选择并在不同的组件中实现,这些组件将共同构成整个系统。

那么什么是阿帕奇骆驼?

ApacheCamel为您提供了EIP的接口、基本对象、常用的实现、调试工具、配置系统和许多其他帮助程序,当您希望实现解决方案以遵循EIP时,这些帮助程序将为您节省大量时间。

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

这正是Apache Camel为EIP所做的。这是一个完整的生产就绪框架,适用于希望实施其解决方案以遵循EIP的人员。

假设你创建了一家像亚马逊这样的电子商务公司,你只想专注于销售产品的战略/选择。与亚马逊的送货车队不同,你不需要自己处理从卖家到仓库的货物运输,而是在仓库中对货物进行包装,然后将货物发送给其他城市和客户。你雇了一家公司来做这一切,只需向他们提供你所有仓库位置、车辆类型、交货地点的信息,以及何时做什么的列表。然后他们自己处理,那就是阿帕奇骆驼。一旦你把东西交给他们,他们会把东西从一端移到另一端,这样你就可以自由地专注于其他事情。

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

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