我要挖骆驼,以便并行处理大量记录。我有这样的东西:
from(CAMEL_START_ROUTE_CTE)
.multicast().parallelProcessing()
.to(CAMEL_PROCESS_DOMAINS_ROUTE)
.to(CAMEL_PROCESS_OTHERS_ROUTE)
.end()
.onCompletion()
.to(EndCamelRouteBuilder.CAMEL_ROUTE);
CAMEL_START_ROUTE_CTE在
timer:foo?delay=100&repeatCount=1
然后,CAMEL_PROCESS_DOMAINS_ROUTE看起来像这样:
from(CAMEL_PROCESS_DOMAINS_ROUTE)
.setHeader("domains").constant(config.getDomains())
.split(header("domains"))
.parallelProcessing()
.to(ProcessDomainCamelRoute.CAMEL_ROUTE)
.end()
.end();
简化,domains是一个json列表。
我想要实现的是一种计数消息数量并能够在EndCamelRoute路由中读取消息的方法
我已经尝试使用exchange.setProperty进入处理器(使用CamelSplitSize),setHeader等...,但是在读取时我总是得到null。
有人知道实现这种目标的方法吗?某种...正在报告的东西(失败,成功的消息数),但是消耗的路径不同
答案 0 :(得分:1)
我在使用split时遇到了类似的问题。最终有了一个非常简单的bean,在其中存储了我存储计数器的hashmap。 我一直在研究MicroMeter Component,但它仅是消费者。