📅  最后修改于: 2020-10-13 08:09:26             🧑  作者: Mango
在本章中,我们将了解不同的骆驼概念。让我们从一个基本的例子开始,以理解开始时的核心概念。
每个骆驼应用程序将至少具有一个CamelContext。这是我们添加Camel路线的地方。它类似于Spring的ApplicationContext 。
Camel语境可以看作是将所有事物保持在一起的容器。一个骆驼上下文可以在其中包含多个路由。
CamelContext可能包含一个或多个路由。路由是一种集成逻辑,它定义了数据如何在骆驼上下文中从一个端点流向另一个端点。
端点是系统可以通过其发送或接收消息的通道的终点。这就是我们所说的通讯语言中的目的地或来源。
组件是Camel中的扩展点。组件可以是技术,数据格式,转换器等的接口。它们还可以充当端点的工厂。
EIP代表企业集成模式。这些是反复出现的问题的已识别和众所周知的解决方案。骆驼支持大多数企业集成模式。
CBR模式允许我们根据输入文件的内容来路由数据。
当我们必须根据输入正文的内容路由值时,使用此模式。
以下示例将从D:/ data / input目录读取数据。读取后,它将检查数据标签内的值标签。如果value标记包含value1 ,则将其发送到D:/ value1 ;如果包含value2 ,则将其发送到D:/ value2 ;如果这两个都不存在,则将其发送给其他人。
/data/value = 'value1'
/data/value = 'value2'
输入项
D:/数据/输入/message1.xml
value1
D:/数据/输入/message2.xml
value2
输出
D:/值1 /
value1
D:/值2 /
value2
拆分器模式用于将输入数据拆分为较小的块。
大多数情况下,此模式用于大量数据输入,需要将其分成多个块,因此它变得可处理。它根据输入令牌字符串将输入分解为较小的片段。
输入项
D:/收件箱/message.xml
value1
value2
value3
输出
如果您勾选AMQ,您会发现张贴了3条消息。
value4
当需要从邮件正文本身中检索收件人列表时,使用收件人列表模式。
在下面的示例中,一条消息将作为逗号分隔的字符串列表发送给在客户标签中列出的所有收件人。
/order/customer
骆驼为几乎所有确定的EIP提供支持。一些常用的EIP如下所述。
EIP的完整列表及其用法可以在Camel的官方文档中找到: http://camel.apache.org/eip.html
使用错误处理程序-这是处理骆驼中异常的最简单方法。
要使用此功能,我们必须配置错误处理程序类bean并将其提供为对CamelContext errorHandlerRef属性的引用。
…
Camel还支持Java样式Try Catch Final块,用于错误处理。
就像Java一样,它具有以下三个块-
注–模拟是测试组件,不建议用于其他目的。它是骆驼中用于测试的组件,就像测试驱动开发中的jMOck组件一样。
java.io.IOException
java.lang.IllegalStateException
在上面的示例中,我们可以提供catch块需要处理的异常列表。
使用Fuse.bat / start.bat启动Fuse。
如果使用start.bat启动Fuse,请使用client.bat连接到Fuse。您应该获得以下屏幕截图中所示的UI。
这是用于访问Karaf和Fuse命令的CLI。
install –s mvn:group.id /artifact.id/version
e.g. install –s mvn:com.tutorialpoint.app/camel-firt-app/1.0-SNAPSHOT