📜  JBoss Fuse-Camel概念

📅  最后修改于: 2020-10-13 08:09:26             🧑  作者: Mango


 

在本章中,我们将了解不同的骆驼概念。让我们从一个基本的例子开始,以理解开始时的核心概念。

Camel语境

每个骆驼应用程序将至少具有一个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如下所述。

  • 日志-记录完整的消息或部分消息
  • 消息过滤器-过滤消息内容
  • 重新排序器顺序获取所有令牌
  • 窃听-检查旅行消息

EIP的完整列表及其用法可以在Camel的官方文档中找到: http://camel.apache.org/eip.html

骆驼中的异常处理

使用错误处理程序-这是处理骆驼中异常的最简单方法。

要使用此功能,我们必须配置错误处理程序类bean并将其提供为对CamelContext errorHandlerRef属性的引用。


   
   



最后使用Try Catch

Camel还支持Java样式Try Catch Final块,用于错误处理。

就像Java一样,它具有以下三个块-

  • doTry块包含可能生成异常的代码。
  • doCatch块包含在异常情况下需要执行的代码。
  • doFinally块具有无论异常如何都必须执行的代码。无论是否引发异常,它将始终执行。

–模拟是测试组件,不建议用于其他目的。它是骆驼中用于测试的组件,就像测试驱动开发中的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