博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
camel
阅读量:4972 次
发布时间:2019-06-12

本文共 3364 字,大约阅读时间需要 11 分钟。

最近项目里会用到camel,近期会写一篇文章来总结camel中的一些常用的‘知识点’。

总结一下。

1 from

from("file://C:\\Users\\xxx\\documents\\camel?fileName=b.txt").routeId("routeId")         .log(LoggingLevel.DEBUG,"lalala ${id} ${body}")         .inOnly("direct:BBB")         .log(LoggingLevel.DEBUG,"--------"+"${body}"+"processing ${id}"); 一直会监听这个路径下的b.txt文件。

2 camel 设置打印log

3 bean processor

类似拦截器,对exchange进行一些处理

如果在bean,processor中有调用exchange.get()方法,读取exchange中的流,之后需要重新set进去才行,否则,之后exchange中的内容为null。

做了一个简单的demo,就了解到这些基本的方法作用,其他的再慢慢探索,还是很枯燥的。

4 onException

捕捉camel route中产生的异常

http://people.apache.org/~dkulp/camel/exception-clause.html 

网页中有比较详细的例子可参考。

5 streamCaching

stream缓存,因为stream类型的数据只能读一次。from Camel 2.0 缓存默认不可用。

6 marsh unmarsh

marsh bean转xml

unmarsh xml转bean

 7 setExchangePattern(待完成)

可参考 https://examples.javacodegeeks.com/enterprise-java/apache-camel/apache-camel-exchange-example/

http://www.catchmycity.com/tutorial/apache-camel-difference-between-exchangepattern-inout-and-exchangepattern-inonly-in-apache-camel_101

InOnly 

InOut request-reply

Not all camel endpoints support INOUT. The JMS endpoint supports it but the file endpoint does not.

Unfortunately this is indeed not well documented.

 

8 setProperty

setProperty在route中传递, setHeader在exchange中传递。

Similar to message headers, but they last for the duration of the entire exchange.

可参考 http://camel.465427.n5.nabble.com/Camel-Java-DSL-setProperty-behaviour-td5718226.html

9 choice

.choice()                .when().simple("${body} == 'test inout'").setBody(simple("one")).endChoice()                .when().simple("${body} == 'aaa'").setBody(simple("two")).endChoice()                .end()

可参考  https://cleverbuilder.com/articles/camel-choice-when/

10 doTry() doCatch(xx.class)

处理异常,类似java try catch

11 multicast() split()

multicast

The Multicast allows to route the same message to a number of endpoints and process them in a different way. The main difference between the Multicast and Splitter is that Splitter will split the message into several pieces but the Multicast will not modify the request message.

可参考  http://people.apache.org/~dkulp/camel/multicast.html

split

The Splitter from the EIP Pattern allows you split a message into a number of pieces and process them individually

可参考 http://camel.apache.org/splitter.html

12  SEDA indirect vm

可参考 http://camel.apache.org/how-do-the-direct-event-seda-and-vm-endpoints-compare.html

https://cleverbuilder.com/articles/camel-direct-vm-seda/

  • Component Type Within same CamelContext Within same JVM
    Direct Synchronous Yes No
    Direct-VM Synchronous Yes Yes
    SEDA Asynchronous Yes No
    VM Asynchronous Yes Yes

 13 recipientList

使用recipientList可以创建动态的接收者。

example

from("direct:a").recipientList(header("myHeader").tokenize(","));

myHeader = {'direct:a','direct:b'}

14 camel 打印exchange信息到控制台 

解决 DEBUG ProducerCache                  - >>>> Endpoint[direct:start] Exchange[Message: 01234567890123456789... [Body clipped after 20 chars, total length is 1000]] 参考 http://camel.apache.org/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.html 设置camelContext信息输出长度。 endpoint.getxxx 参考下图输出body信息。

 15  camel - mybatis

参考 https://camel.apache.org/mybatis-example.html

16 wire tap

参考 

 

 

17 routePolicy

在 RoutePolicySupport 抽象类中存在着这些方法:

实现routePolicy 可在route开始,结束等时候执行。在我理解,routepolicy是一个拦截器,在route执行的各个时间被trigger。

 18 Apache Camel的核心概念

参考 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Jenny22/p/9927668.html

你可能感兴趣的文章
poj3254二进制放牛——状态压缩DP
查看>>
使用 ref 和 out 传递数组注意事项
查看>>
combobox和textbox中输入数据为非数字leave时的公用事件,只需要在控件的leave事件中选择本事件即可...
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
勇者无畏
查看>>
12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
C#控制台程序实现鼠标左右手习惯切换
查看>>
C++ 继承、函数重载
查看>>
Javascript获取select下拉框选中的的值
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
springmvc常用注解标签详解
查看>>
Linux之ssh服务介绍
查看>>
Java Swing提供的文件选择对话框 - JFileChooser
查看>>
排序:冒泡排序
查看>>
github下载安装
查看>>
Hive学习之路 (十九)Hive的数据倾斜
查看>>
Hat’s Words
查看>>