我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
我不明白骆驼到底是干什么的。
如果你能用101个单词介绍一下骆驼:
到底是什么?它如何与用Java编写的应用程序交互?它是与服务器一起使用的吗?这是一个独立的项目吗?
请解释一下骆驼是什么。
当前回答
Camel有助于路由、转换和监控。
它使用Routes;其可以描述为:
当服务总线接收到特定消息时,它将通过任何服务/代理目的地(如队列/主题)将其路由。这条路径称为路线。
例子:您的股票应用程序得到了分析师的一些输入,它将通过应用程序/web组件进行处理,然后将结果发布给所有感兴趣的/注册的成员,以进行特定的股票更新。
其他回答
如果您了解企业集成模式,ApacheCamel是一个实现所有EIP的集成框架。
您可以将Camel部署为web容器中的独立应用程序。
基本上,如果您必须使用不同的协议和技术集成多个应用程序,那么可以使用Camel。
如果您有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的人员。
就像一条管道
From---->To
在两者之间,可以添加尽可能多的通道和管道。水龙头可以是任何类型的用于数据流和引导流的路线的自动或手动。
它支持并实现了所有类型和类型的处理。对于相同的处理,有很多方法,因为它有很多组件,每个组件也可以使用不同的方法提供所需的输出。
例如,文件传输可以使用移动或复制的文件类型,也可以从文件夹、服务器或队列中进行。
-from-->To
- from-->process-->to
- from-->bean-->to
- from-->process-->bean-->to
-from-->marshal-->process-->unmarshal-->to
从/到----文件夹、直接、seda、vm可以是任何内容
创建项目描述不应该很复杂。
我说:
Apache Camel是消息技术与路由的粘合剂。它将消息传递起点和终点连接在一起,允许将消息从不同的源传递到不同的目的地。例如:JMS->JSON、HTTP->JMS或漏斗式FTP->JMS、HTTP->JMS、JSON->JMS
维基百科说:
ApacheCamel是一个基于规则的路由和中介引擎,它使用API(或声明性Java域特定语言)来配置路由和中介规则,提供企业集成模式的基于Java对象的实现。特定于领域的语言意味着ApacheCamel可以使用常规Java代码支持IDE中路由规则的类型安全智能完成,而无需大量的XML配置文件;尽管也支持Spring内部的XML配置。
看见这不难吧?