博客搬家至 https://lcy362.github.io/posts/1120/
apache-camel 作为数据路由的利器,使用起来非常方便。不过与此同时,也有一个问题,就是由于封装的过于完善,隐藏了很多技术细节,所以一旦有问题,排查会比较困难。好在官方提供了一个debug工具,可以帮助我们正常的打断点、调试,http://camel.apache.org/debugger.html, 在本文中会对官方文档做一些补充。
首先需要引入camel-test包:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-test</artifactId>
<version>2.16.2</version>
</dependency>
之后新建一个类并实现CamelTestSupport 。
public class CamelDebugger extends CamelTestSupport {
CamelTestSupport 中有大量的方法,可以根据需要选择一些进行实现,介绍一下其中一些比较重要的。
-
createCamelContext() 这个方法可以定义自己的camelContext进行测试.
-
createRouteBuilder() 这个方法则是使用默认的camelContext,但是加入自己的route
-
debugBefore 和 debugAfter, 这两个方法分别在一条消息被处理前后被执行, 参数里包括exchange, processor等必要信息。真正debug时,也就是在这两个方法里写日志或者打断点。