Корреляция сообщений Camel Fuse Active MQ - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю над корреляцией сообщений ActiveMQ с использованием Camel Blueprint xml DSL, и мне нужно добиться следующего,

  1. маршрута Camel, который получает сообщение из локальной (Host A) очереди Apache ActiveMQ ("XYZ")") и помещает сообщение в удаленную (Host B) Apache ActiveMQ (" ABC ") очередь после установки InOut pattern, useMessageIDAsCorrelationID и replyTo queue как" DEF "(который определен на удаленном хосте,Хост B)
  2. Приложение производителя на удаленном хосте (Хост B) подхватит мое сообщение и скопирует JMSMessageID в JMSCorrelationID и поместит ответное сообщение в очередь ответов ActiveMQ (т. Е. "DEF", которая определена вБрокер Apache ActiveMQ, хост B)
  3. Теперь биржа Camel должна подождать в очереди ответов "DEF", чтобы получить сообщение, используя соответствующий JMSCorrelationID

Вопрос

Посоветуйте, пожалуйста, как мне настроить маршрут для получения ответа для моей очереди ответов (например, "DEF"), используя соответствующий JMSCorrelationID.

Маршрут, которыйч я поставил пока это:

<route id="test5">
    <from id="test-from5" uri="jms:queue:XYZ?connectionFactory=amqConnectionFactory"/>
    <log id="test-log5" message=" Transferring to queue"/>
    <log id="test"  message="Request Message Body : ${body}" />
    <log message="Request JMSMessageID : ${in.header.JMSMessageID}" />
    <setHeader headerName="JMSCorrelationID" id="_setHeader3">
        <simple>${in.header.JMSMessageID}</simple>
    </setHeader>
    <log message="Request JMSCorrelationID : ${in.header.JMSCorrelationID}" />
    <to id="_to5" uri="jms:queue:ABC?connectionFactory=amqConnectionFactoryABC&amp;exchangePattern=InOut&amp;replyTo=DEF&amp;useMessageIDAsCorrelationID=true"/>
    <log message="Message sent successfully" />
    <log message="Response JMSMessageID : ${in.header.JMSMessageID}" />
    <log message="Response JMSCorrelationID : ${in.header.JMSCorrelationID}" />
    <log message="Response Message Body : ${in.body}" />
</route>
...