Как выбрать несколько сообщений из асинхронной очереди и объединить их в один обмен, используя Apache Camel

Я запускаю загрузочное приложение на верблюжьей пружине и пытаюсь обработать несколько асинхронных сообщений в одно сообщение с помощью Apache Camel. В сообщении есть уникальный заголовок, с помощью которого мне нужно агрегировать, и значение extensionSize равно 3, и оно исправлено.

Я использую Apache Camel 2.21 .

Я попробовал ниже, но это не работает, как ожидалось. Биржи не сгруппированы вместе. Я заменю seda на rabitmq, как только он будет работать нормально с seda.

Примерный верблюжий маршрут:

<route id="SegaCompletionRoute" streamCache="true">
            <from uri="seda:ackquote?concurrentConsumers=3" />
            <aggregate completionSize="3" groupExchanges="true">
                <correlationExpression>
                    <simple>${header.Long-Running-Action}</simple>
                </correlationExpression>
                <to uri="mock:result" />
            </aggregate>
            <saga propagation="MANDATORY">
            </saga>
            <log message="Grouped exchange 
            ${body}" />
            <log message="Ackquote 
            ${header.Long-Running-Action}" />
            <!-- <to uri="saga:compensate" /> -->
            <to uri="saga:complete" />
        </route>

Я что-то пропустил?

0 ответов

Другие вопросы по тегам