感谢Claus的评论,我想出了以下内容,似乎按照我的想法使用 wireTap :
from("direct:step1-in").to("direct:step1-out");
from("direct:step2-in")
.log("receive async")
.delay(1000).to("log:output");
// core route connecting processing step1 and processing step2
from("direct:step1-out").log("send async").wireTap("direct:step2-in")
.executorService(getContext().getExecutorServiceManager().newThreadPool(this,
"step2-worker", 1, 100));
我认为这是要走的路 . 虽然我很困惑,因为Camel in Action书中建议:10.4.3异步调用者使用多个线程
from("seda:start")
.to("log:A")
.threads(5, 10)
.to("log:B");
这是最明显的方法,但正如此处所述:http://camel.apache.org/seda.html它不是可行的方式,因为它可以结束,建议使用direct而不是seda的替代方案对我不起作用,因此问题 . 此外,seda方式具有无限队列,这是一个潜在的"memo