我是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。这是强制性的吗?
答案 0 :(得分:4)
这不是完美的,你可以使用没有聚合策略的分离器,这是正常的,如分离器EIP:http://camel.apache.org/splitter
如果你使用一个聚合策略,那么它更像是这个EIP:http://camel.apache.org/composed-message-processor.html,只能在Camel中使用拆分器完成。