📅  最后修改于: 2020-10-30 10:03:17             🧑  作者: Mango
骆驼是一个黑匣子,它从某个端点接收消息并将其发送到另一个端点。在黑框内,可以对消息进行处理或简单地将其重定向。
那么为什么要有一个框架呢?如引言案例研究所示,在实际情况下,可能有许多发送方和接收方都遵循其自己的协议,例如ftp,http和jms。系统可能需要许多复杂的规则,例如发件人A发出的消息仅应传递给B&C。在某些情况下,您可能必须将消息转换为收件人期望的另一种格式。根据消息内容,此翻译可能要遵守某些条件。因此,从本质上讲,您可能需要在协议之间进行翻译,将组件粘合在一起,定义路由规则,并根据消息内容进行过滤。下图对此进行了说明-
为了满足上述要求并针对许多此类情况设计适当的软件体系结构,Gregor Hohpe和Bobby Woolf在2003年记录了企业集成模式( EIP )。ApacheCamel提供了这些模式的实现,本教程的目的是教您如何在引言中描述的情况下使用骆驼。
Apache Camel是一个开源框架。它是一种面向消息的中间件,提供基于规则的路由和中介引擎。您可以定义规则,例如是否是“牛奶”订单将其重定向到牛奶供应商,是否是“石油”订单将其重定向到石油供应商,等等。使用Camel,您将能够实现这些规则并以熟悉的Java代码进行路由。这意味着您可以在类型安全的环境中使用熟悉的Java IDE定义这些规则。我们不需要使用通常很庞大的XML配置文件。如果您更喜欢使用XML来配置规则,Camel虽然支持通过Spring框架进行XML配置。如果您是Scala爱好者,甚至可以使用Blueprint XML配置文件,甚至使用Scala DSL。这也意味着您可以使用自己喜欢的Java,Scala IDE甚至简单的XML编辑器来配置规则。
该引擎的输入可以是逗号分隔的文本文件,POJO(普通的旧Java对象),XML是Camel支持的其他几种格式中的任何一种。同样,引擎的输出可以重定向到文件,消息队列甚至监视器屏幕,以供您查看发送给各个供应商的订单。这些称为端点,而Camel支持消息端点EIP模式。骆驼端点将在“端点”一章的后面进行讨论。
Camel通常与Apache ServiceMix , Apache ActiveMQ和Apache CXF一起使用,以实现面向服务的体系结构。