计算骆驼并行拆分上成功处理的消息数

Count number of successful processed messages on camel parallel split

我正在研究 camel,以便并行处理大量记录。我有这样的东西:

     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();

简化,域是一个 json 列表。

我想要实现的是一种计算消息数量并能够在路由 EndCamelRoute

中读取的方法

我已经尝试将 exchange.setProperty 放入处理器(使用 CamelSplitSize)、setHeader 等...但是我在读取时总是得到一个 null。

有人知道实现类似目标的方法吗?某种......报告内容(失败,成功消息的数量),但在不同的路线中消耗

我在使用 split 时遇到了类似的问题。最终得到了一个非常简单的 bean,其中包含一个哈希图,我在其中存储了我的计数器。 我正在调查 MicroMeter Component 但它仅供消费者使用。