Camel使用不带聚合器的分离器

时间:2015-07-10 18:05:42

标签: java apache-camel

我是Camel的新手,我想用它来读取FTP服务器上的XML文件和XML的所有NODE元素的assynch进程。

实际上,我将使用拆分器来处理每个节点(我使用流,因为XML文件很大)。

from(ftp://user@host:port/...)
    .split().tokenizeXML("node").streaming()
    .to("seda:processNode")
    .end();

然后到nodeProcessor的路由:

from("seda:processNode")
    .bean(lookup(MyNodeProcessor.class))
    .end();

我想知道是否可以使用没有聚合器的分离器?就我而言,我不需要聚合所有已处理节点的结果。

我想知道Camel是否有一个问题是让许多“分裂”的线程进入“死胡同”而不是聚集在一起?

Camel提供的示例显示了一个没有聚合器的分离器,但它们仍然为分离器提供aggregationStrategy。这是强制性的吗?

1 个答案:

答案 0 :(得分:4)

这不是完美的,你可以使用没有聚合策略的分离器,这是正常的,如分离器EIP:http://camel.apache.org/splitter

如果你使用一个聚合策略,那么它更像是这个EIP:http://camel.apache.org/composed-message-processor.html,只能在Camel中使用拆分器完成。