骆驼保险丝Active MQ消息相关性

时间:2019-09-20 12:21:45

标签: apache-camel activemq jbossfuse fuseesb

我正在使用Camel Blueprint xml DSL进行ActiveMQ消息关联,我需要实现以下目标,

  1. 骆驼路由,该路由在设置InOut模式后从本地(主机A)Apache ActiveMQ队列(“ XYZ”)中提取消息并将消息放入远程(主机B)Apache ActiveMQ(“ ABC”)队列中,useMessageIDAsCorrelationIDreplyTo作为“ DEF”(在远程主机Host B上定义)排队
  2. 远程主机(主机B)上的
  3. Producer应用程序将接收我的消息,并将JMSMessageID复制到JMSCorrelationID并将响应消息放入ActiveMQ响应队列(即在Apache ActiveMQ代理主机B上定义的“ DEF”)
  4. 现在,骆驼交换应该在响应队列“ DEF”上等待,以使用匹配的JMSCorrelationID来获取消息

问题

请告知我应该如何使用匹配的JMSCorrelationID配置路由以接收答复队列(即“ DEF”)的响应。

到目前为止,我所说的路线是:

<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>

0 个答案:

没有答案