для начала, явно настройте одного потребителя в ваших маршрутах, которые потребляют из очередей ...
либо глобально для всех соединений
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
<property name="concurrentConsumers" value="1"/>
<property name="maxConcurrentConsumers" value="1"/>
</bean>
или явно для маршрута / потребителя
from("activemq:queue:input?concurrentConsumers=1&maxConcurrentConcumers=1")...
тогда у вас есть несколько вариантов. Как правило, вы можете использовать шаблон конвейера для передачи сообщений между шагами (синхронно) по одному маршруту. Или используйте camel-direct для обеспечения синхронного потока сообщений между несколькими маршрутами.
from("activemq:queue:input?concurrentConsumers=1&maxConcurrentConcumers=1")
.to(<step1>)
.to(<step2>)
...
или если ваши шаги требуют нескольких маршрутов, подключите их, используя прямой ...
from("activemq:queue:input?concurrentConsumers=1&maxConcurrentConsumers=1")
.to("direct:step1");
from("direct:step1")
//perform step1 processing
.to(direct:step2");
from("direct:step2")
//perform step2 processing
.to(direct:step3");
...