2012-08-27 34 views
7

最近我开始使用骆驼,我发现它可能解决了我的许多集成层需求。骆驼是否为每条路线创建线程

我已经创建了一个Java客户端应用程序(在任何容器不运行),其中i定义的两个路线:

ROUTE1:从输入的文件夹1文件移动到FOLDER2

路径2:从folderx移动文件内容到mq队列。

我开始我的应用程序,这些路由正在做他们的工作轮询这些文件夹和相应的路由消息。

任何人都可以解释我是如何工作的路线。骆驼(上下文)是否为每条路线创建一个线程。究竟发生了什么?

注意:我在骆驼网站上找不到这个简单的注释。

回答

9

它取决于您在路径中使用的组件,正在创建和使用多少个线程。

以及骆驼中的一些EIP支持多个线程(线程池),因此可以配置为使用N个线程。

在你的例子中它是文件组件,它使用单个线程。由于您有2条路线,您将使用2条线程。某些组件还允许配置它们的线程(例如线程池)。比如最近我们增加的支持,以便在骆驼2.10文件组件(见http://camel.apache.org/file2的ScheduledExecutorService的选项)

这里有一个关于骆驼的线程模型的一些注意事项 http://camel.apache.org/threading-model.html