我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
当前回答
用简单的英语来说,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
其他回答
用简单的英语来说,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
如果您有5到10分钟的时间,我通常建议大家阅读Jonathan Anstey的《与Apache骆驼的集成》。这是一篇写得很好的文章,对Camel的一些概念进行了简要介绍和概述,并用代码示例实现了一个用例。乔纳森在信中写道:
ApacheCamel是一个开源Java框架,专注于使集成更容易,更易于开发人员访问。它通过提供:所有广泛使用的企业集成模式(EIP)的具体实现连接到各种传输和API易于使用的领域特定语言(DSL)将EIP和传输连接在一起
《行动中的骆驼》(Camel in Action,第二版)还有一个免费章节,在第一章中介绍了骆驼。乔纳森和我是那本书的合著者。
ApacheCamel是一个实现所有企业集成模式的轻量级集成框架。您可以使用所需的模式轻松地集成不同的应用程序。您可以使用Java、SpringXML、Scala或Groovy。
Apache Camel在Java虚拟机(JVM)上运行。。。ApacheCamel的核心功能是其路由引擎。它根据相关路由分配消息。路由包含流和集成逻辑。它是使用EIP和特定DSL实现的。
创建项目描述不应该很复杂。
我说:
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组件进行处理,然后将结果发布给所有感兴趣的/注册的成员,以进行特定的股票更新。