我正在尝试构建一条将执行以下操作的路线:
jms:sender-in.我正在使用INOUT请求回复模式.该JMSReplyTo = sender-outjms:consumer1-in,jms:consumer2-in和jms:consumer3-in.所有人都在使用请求回复模式.在 JMSReplyTo每消费指定(在这种情况下,JMSReplyTo在这个顺序jms:consumer1-out, jms:consumer2-out, jms:consumer3-outjms:sender-out.我构建了一条类似于此的路线:
from("jms:sender-in")
.to("jms:consumer1-in?exchangePattern=InOut&replyTo=queue:consumer1-out&preserveMessageQos=true")
.to("jms:consumer2-in?exchangePattern=InOut&replyTo=queue:consumer2-out&preserveMessageQos=true")
.to("jms:consumer3-in?exchangePattern=InOut&replyTo=queue:consumer3-out&preserveMessageQos=true");
Run Code Online (Sandbox Code Playgroud)
然后我将回复发送回某个队列以收集和聚合:
from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:gather").aggregate(header("TransactionID"), new GatherResponses()).completionSize(3).to("jms:sender-out");
Run Code Online (Sandbox Code Playgroud)
为了模仿我的消费者的行为,我添加了以下路线:
from("jms:consumer1-in").setBody(body());
from("jms:consumer2-in").setBody(body());
from("jms:consumer3-in").setBody(body());
Run Code Online (Sandbox Code Playgroud)
我有几个问题:
我有一种感觉,我正在努力解决一些基本概念.任何帮助表示赞赏.谢谢.
apache-camel ×1