骆驼使用没有聚合器的分离器

Camel Use a splitter without aggregator

我是 Camel 的新手,我想用它来读取 FTP 服务器上的 XML 文件,并为 [=27] 的所有 NODE 元素创建一个同步进程=].

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

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

然后到nodeProcessor的路由:

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

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

我想知道在 Camel 中让许多 "splitted" 线程进入 "dead end" 而不是聚合是不是一个问题?

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

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

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