消息排序和并行处理Apache骆驼

1 parallel-processing apache-camel

我想处理一系列自定义Java对象,使用骆驼拆分器拆分这些对象,并希望在并行线程中对其进行处理。但是我面临的挑战是,自定义对象的列表是根据ID排序的,该ID必须写入文件中。

一旦使用并行处理,该序列就会受到干扰。我浏览了几篇文章,要求使用“ reequencer”或“单线程”。但是使用单线程,需要花费大量时间来处理5k记录。

任何线索都将非常有帮助。谢谢尼丁

小智 5

基于标签“ XXX”拆分XMl请求时,我遇到了类似的问题。然后处理拆分后的请求并汇总为响应。汇总响应的顺序与请求的顺序不同。

FIX:通过在拆分器EIP中使用聚合“ strategyRef”已解决了该问题。

样例代码:

    <route>
        <from id="_from1" uri="activemq:DocumentGenerationQueue" />
        <split  parallelProcessing="true" streaming="false"  strategyRef = "AggregateTask" >
        <tokenize token="XXX" xml="true" />
            <to id="_to71"  uri="bean:ProcessorBean" />
            <to id="_to72"  uri="activemq:SplittedResponseQueue" />
        </split>
        <to uri="activemq:AggregatedResponseQueue" />
    </route>
Run Code Online (Sandbox Code Playgroud)