我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
当前回答
ApacheCamel是一个用于企业集成的Java框架。例如:如果您正在构建一个与许多供应商API交互的web应用程序,我们可以使用骆驼作为外部集成工具。我们可以根据用例做更多的工作。曼宁出版的《骆驼在行动》是一本学习骆驼的好书。集成可以定义如下。
Java DSL
from("jetty://0.0.0.0:8080/searchProduct").routeId("searchProduct.products").threads()
.log(LoggingLevel.INFO, "searchProducts request Received with body: ${body}")
.bean(Processor.class, "createSearchProductsRequest").removeHeaders("CamelHttp*")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://" + preLiveBaseAPI + searchProductsUrl + "?apiKey=" + ApiKey
+ "&bridgeEndpoint=true")
.bean(Processor.class, "buildResponse").log(LoggingLevel.INFO, "Search products finished");
这只是创建一个RESTAPI端点,然后调用外部API并将请求发送回
弹簧DSL
<route id="GROUPS-SHOW">
<from uri="jetty://0.0.0.0:8080/showGroups" />
<log loggingLevel="INFO" message="Reqeust receviced service to fetch groups -> ${body}" />
<to uri="direct:auditLog" />
<process ref="TestProcessor" />
</route>
回答您的问题
到底是什么?答:这是一个实现企业集成模式的框架它如何与用Java编写的应用程序交互?答:-它可以与任何可用的协议交互,如http、ftp、amqp等它是与服务器一起使用的吗?答:它可以部署在像tomcat这样的容器中,也可以作为java进程独立部署这是一个独立的项目吗?答案:-可能。
希望有帮助
其他回答
如果您了解企业集成模式,ApacheCamel是一个实现所有EIP的集成框架。
您可以将Camel部署为web容器中的独立应用程序。
基本上,如果您必须使用不同的协议和技术集成多个应用程序,那么可以使用Camel。
骆驼从A向B发送消息:
为什么要有一个完整的框架?如果你有:
许多发送者和许多接收者十几种协议(ftp、http、jms等)许多复杂的规则仅向接收方a和B发送消息a将消息B以XML的形式发送给接收方C,但部分地将其翻译、丰富(添加元数据)和IF条件X,然后也将其以CSV的形式发送到接收方D。
因此,现在您需要:
在协议之间转换将组件粘合在一起定义路线-路线在某些情况下过滤某些内容
Camel为您提供了以上(以及更多)开箱即用的功能:
使用一种很酷的DSL语言,您可以定义什么以及如何:
new DefaultCamelContext().addRoutes(new RouteBuilder() {
public void configure() {
from("jms:incomingMessages")
.choice() // start router rules
.when(header("CamelFileName")
.endsWith(".xml"))
.to("jms:xmlMessages")
.when(header("CamelFileName")
.endsWith(".csv"))
.to("ftp:csvMessages");
}
另请参阅《这和这》和《骆驼在行动》(正如其他人所说,这是一本优秀的书!)
假设你创建了一家像亚马逊这样的电子商务公司,你只想专注于销售产品的战略/选择。与亚马逊的送货车队不同,你不需要自己处理从卖家到仓库的货物运输,而是在仓库中对货物进行包装,然后将货物发送给其他城市和客户。你雇了一家公司来做这一切,只需向他们提供你所有仓库位置、车辆类型、交货地点的信息,以及何时做什么的列表。然后他们自己处理,那就是阿帕奇骆驼。一旦你把东西交给他们,他们会把东西从一端移到另一端,这样你就可以自由地专注于其他事情。
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。
就像一条管道
From---->To
在两者之间,可以添加尽可能多的通道和管道。水龙头可以是任何类型的用于数据流和引导流的路线的自动或手动。
它支持并实现了所有类型和类型的处理。对于相同的处理,有很多方法,因为它有很多组件,每个组件也可以使用不同的方法提供所需的输出。
例如,文件传输可以使用移动或复制的文件类型,也可以从文件夹、服务器或队列中进行。
-from-->To
- from-->process-->to
- from-->bean-->to
- from-->process-->bean-->to
-from-->marshal-->process-->unmarshal-->to
从/到----文件夹、直接、seda、vm可以是任何内容