最近我开始使用camel,我发现它可能解决了我的很多集成层需求。
我创建了一个java客户端应用程序(不在任何容器中运行),我在其中定义了两个路由:
route1:将文件从传入的folder1移动到folder2
route2:将文件内容从folderx移动到mq队列。
我启动了我的应用程序,这些路由正在轮询这些文件夹并相应地路由消息。
任何人都可以解释我的路线如何运作。 camel(context)是否为每个路由创建一个线程。究竟发生了什么?
注意:我在骆驼网站上找不到这方面的简单说明。
答案 0 :(得分:11)
这取决于您在路由中使用的组件,正在创建和使用的线程数。
Camel中的一些EIP支持多个线程(线程池),因此可以配置为使用N个线程。
在您的示例中是文件组件,它使用单个线程。由于您有2条路线,因此您将使用2条线程。某些组件还允许配置其线程(例如线程池)。例如,最近我们在Camel 2.10中添加了对文件组件的支持(参见http://camel.apache.org/file2中的scheduledExecutorService选项)
这里有一些关于Camel线程模型的注释 http://camel.apache.org/threading-model.html