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

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

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

请解释一下骆驼是什么。


当前回答

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

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

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

其他回答

到底是什么?

ApacheCamel是一个轻量级集成框架,它实现了许多企业集成模式。您可以使用所需的模式轻松地集成不同的应用程序。

您可以使用Java、SpringXML、Scala或Groovy。几乎所有你能想到的技术都是可用的,例如HTTP、FTP、JMS、EJB、JPA、RMI、JMS、JMX、LDAP、Netty等。

看看这篇文章和EIP模式文章

它如何与用Java编写的应用程序交互?

Camel使用Java域特定语言或DSL以各种域特定语言(DSL)创建企业集成模式或路由,如下所示。

Java DSL-一种基于Java的DSL,使用流畅的构建器风格。

企业集成模式的故事围绕以下概念展开:

消息、端点、生产者、消费者、路由、总线、转换和过程。

看看Anirban Konar的这篇文章,了解其中一个实时用例。

它是与服务器一起使用的吗?

它充当跨多个企业子系统的桥梁。

这是一个独立的项目吗?

ApacheCamel是一个集成框架,它集成了不同的独立应用程序。

Camel的主要优势:您可以通过对每个集成使用相同的概念,将不同的应用程序与不同的技术(和不同的协议)集成。

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

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

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

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

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

101单词简介

Camel是一个具有一致API和编程模型的框架,用于将应用程序集成在一起。API基于企业集成模式中的理论,即倾向于使用消息传递的一系列设计模式。它提供了大多数这些模式的开箱即用的实现,此外还附带了200多个不同的组件,您可以使用它们轻松地与各种其他系统进行通信。要使用Camel,首先在POJO中编写业务逻辑,并实现以消息为中心的简单接口。然后使用Camel的DSL创建“Routes”,这是将应用程序粘合在一起的一组规则。

扩展简介

从表面上看,Camel的功能与传统的企业服务总线产品不相上下。我们通常认为CamelRoute是一个位于服务器端的“中介”(也称为编排)组件,但因为它是一个Java库,所以很容易嵌入,它也可以位于客户端应用程序上,并帮助您将其与点对点服务(也称为编舞)集成。您甚至可以使用POJO来处理Camel路由内的消息,并轻松地将它们分离到自己的远程消费者流程中,例如,如果您只需要独立扩展一个部分。根据您的需要,您可以使用Camel通过任意数量的不同远程传输/协议连接路由或处理器。你需要一个非常高效和快速的二进制协议,还是一个更易于人类阅读和调试的协议?如果你想换人怎么办?有了Camel,这通常就像改变路线中的一两条线一样简单,根本不改变任何业务逻辑。或者你可以同时支持这两种方式——你可以在骆驼环境中同时运行多条路线。

您实际上不需要将Camel用于将在单个进程或JVM中运行的简单应用程序,这将是过度的。但在概念上,它并不比你自己编写的代码更难。如果您的需求发生变化,业务逻辑和粘合代码的分离会使您更容易长期维护。一旦你学会了骆驼API,你就可以像瑞士军刀一样轻松地使用它,并在许多不同的环境中快速应用它,从而减少你必须编写的自定义代码量。您可以学习一种风格,例如JavaDSL,一种易于链接的流畅API,并轻松选择其他风格。

如果你想做微服务的话,Camel是一个很好的选择。我发现它对于进化体系结构来说是非常宝贵的,因为您可以推迟许多关于协议、传输和其他系统集成问题的艰难、“容易出错”的决策,直到您对问题领域有更多了解。只需关注EIP和核心业务逻辑,并在了解更多信息时切换到具有“正确”组件的新Routes。

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

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

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

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

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