我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
当前回答
计算中的大多数“新”事物都不是真正的新事物,它们只是一个围绕着已经很好理解的东西的神秘包装。当它们难以理解时,通常是因为有人决定发明新的语言术语或出于不同的目的殖民现有术语(X开发人员颠倒了“客户端”和“服务器”的意思就是一个很好的例子)
Camel是用于应用程序间中间件的基于Java的包装器/API。
中间件是在不共享公共语言或数据类型的实体之间提供解释服务的软件的统称。
这就是骆驼的本质。我们可以通过注意它提供了EIP类型的中间件来充实描述。
它不提供中间件本身,因为它不知道应用程序需要通信的细节。但它提供了创建中间件的不变部分的API(创建起点、创建终点、创建开始和结束条件等)
希望这会有所帮助。
其他回答
计算中的大多数“新”事物都不是真正的新事物,它们只是一个围绕着已经很好理解的东西的神秘包装。当它们难以理解时,通常是因为有人决定发明新的语言术语或出于不同的目的殖民现有术语(X开发人员颠倒了“客户端”和“服务器”的意思就是一个很好的例子)
Camel是用于应用程序间中间件的基于Java的包装器/API。
中间件是在不共享公共语言或数据类型的实体之间提供解释服务的软件的统称。
这就是骆驼的本质。我们可以通过注意它提供了EIP类型的中间件来充实描述。
它不提供中间件本身,因为它不知道应用程序需要通信的细节。但它提供了创建中间件的不变部分的API(创建起点、创建终点、创建开始和结束条件等)
希望这会有所帮助。
从另一个角度定义:
ApacheCamel是一个集成框架。它由一些Java库组成,帮助您在Java平台上实现集成问题。这意味着什么,以及它与一方的API和另一方的企业服务总线(ESB)的区别,在我的文章“何时使用ApacheCamel”中进行了描述。
到底是什么?
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的主要优势:您可以通过对每个集成使用相同的概念,将不同的应用程序与不同的技术(和不同的协议)集成。
用简单的英语来说,camel在没有太多锅炉板代码的情况下完成了很多事情。
为了给您提供一个视角,下面给出的JavaDSL将创建一个REST端点,它将能够接受由产品列表组成的XML,并将其拆分为多个产品,并使用它调用BrandProcessor的Process方法。只需添加.aparallelProcessing(注意注释掉的部分),它就可以并行处理所有产品对象。(产品类是JAXB/XJC从XSD生成的Java存根,输入xml被限制在XSD中。)如此多的代码(加上很少的Camel依赖项)将完成过去需要100行Java代码的工作。
from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.split(stax(Product.class))
/*.parallelProcessing()*/
.process(itemDeltaProcessor);
添加路由ID和日志记录语句后
from("servlet:item-delta?matchOnUriPrefix=true&httpMethodRestrict=POST")
.routeId("Item-DeltaRESTRoute")
.log(LoggingLevel.INFO, "Item Delta received on Item-DeltaRESTRoute")
.split(stax(Product.class))
.parallelProcessing()
.process(itemDeltaProcessor);
这只是一个示例,Camel不仅仅是REST的终点。只需查看可插拔组件列表http://camel.apache.org/components.html
创建项目描述不应该很复杂。
我说:
Apache Camel是消息技术与路由的粘合剂。它将消息传递起点和终点连接在一起,允许将消息从不同的源传递到不同的目的地。例如:JMS->JSON、HTTP->JMS或漏斗式FTP->JMS、HTTP->JMS、JSON->JMS
维基百科说:
ApacheCamel是一个基于规则的路由和中介引擎,它使用API(或声明性Java域特定语言)来配置路由和中介规则,提供企业集成模式的基于Java对象的实现。特定于领域的语言意味着ApacheCamel可以使用常规Java代码支持IDE中路由规则的类型安全智能完成,而无需大量的XML配置文件;尽管也支持Spring内部的XML配置。
看见这不难吧?