下面的测试代码不起作用
from("direct:start").setExchangePattern(ExchangePattern.InOnly).threads(5).delay(2000).bean(MessageHeaderValidator.class);
尽管seda是替代方案,请参阅Camel seda document 。建议改用直接端点。
线程池
请注意,通过执行以下操作将线程池添加到 SEDA 端点:
from("seda:stageName").thread(5).process(...)
最终可能会出现两个 BlockQueue:一个来自 SEDA 端点,一个来自线程池的工作队列,这可能不是您想要的。相反,您可能希望使用线程池配置 Direct 端点,它可以同步和异步处理消息。例如:
from("direct:stageName").thread(5).process(...)
您还可以直接配置在 SEDA 端点上处理消息的线程数 使用并发消费者选项。
最佳答案
对于并行处理,请使用 Camel 的 SEDA 组件和 concurrentConsumers
选项:
from("seda:stageName?concurrentConsumers=5")
.process(...);
关于java - 如何在Camel中使用**直接**端点实现并行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926805/