0
from("direct:A")
    .split(//expression that split msg into two msg M1,M2)
          .process(// here processing)

.from("direct:A")行为类似于 java 方法,即调用它的线程将继续split

那么在上述情况下会发生什么?

莱伊说线程t1调用from("direct:A")然后

它进入.split()这里的 msg 分为两条新消息M1M2.

现在从这里开始会同步调用吗t1process()M1M2

或者

process()会在两个新线程中异步M1调用吗?M2

4

1 回答 1

1

默认情况下,该process()方法是按顺序调用的。但是您可以通过添加一个选项来激活并行处理。

来自骆驼文档

parallelProcessing(默认为 false):如果启用,则同时处理子消息。请注意,调用者线程仍将等待,直到所有子消息都已完全处理,然后才能继续。

注意:如果您对分离器的性能感兴趣,您可以寻找流媒体选项。

于 2013-11-05T21:44:34.373 回答