从Camel中的异步队列生成响应



是否可以有一个具有以下属性的同步camel-activemq队列(例如MY_queue):

  1. MY_QUEUE将其输入发送到EXT_QUEUE.REQ(直接)
  2. 从EXT_QUEUE.RES生成MY_QUEUE的响应(不确定如何!)

以及从EXT_QUEUE.RES填充MY_QUEUE的响应体,其中MY_QUEUE.EXT_QUEUE-REQ和EXT_QUEUE.RES都是活动mq队列。

例如MY_QUEUE--->EXT_QUEUE.REQ

如果是,我该如何进行配置?

谢谢!

我想你想要的是一条沿着这条线的路线:

<route>
    <from uri="activemq:queue:MY_QUEUE?exchangePattern=InOut"/>
    <bean ref="myConverter" method="prepExternalCall"/>
    <enrich uri="activemq:queue:EXT_QUEUE.REQ?replyTo=EXT_QUEUE.REQ.RES&amp;replyToType=Shared"/>
    <bean ref="myConverter" method="postProcessResponse"/>
</route>

在方法postProcessResponse(Exchange ex)返回后,如果发送方已设置了对目的地的JMS回复,则将交换发送回MY_QUEUE(由查询参数exchangePattern=InOut强制执行)。处理是同步的,因为只有在发送了对当前消息的响应之后,才从MY_QUEUE接收下一个消息。

最新更新