我们正在实施基于JMS和REST调用的分布式系统(以及其他)。目前,我们正在研究两个组件A
和B
。组件A
从ActiveMQ-Queue(通过Camel - from
)读取,处理消息并通过REST将其发送到B
(这是通过Camel .to
完成的/ .inOnly
)。 B
进一步处理该消息。
在A
中,这看起来大致如下:
from(activeMqInQueue)
.process(/* someBean */)
.inOnly(/* URI of B */)
.end();
一段时间后,B
将异步调用(由seda队列解耦)返回A
。从Camel的角度来看,这两个调用都没有任何关系,但是从我们的观点来看,一旦我们从B
得到答案,就必须承认这个消息。显然,我们有一些形式的处理程序,它可以关联传出和传入的调用,但我们缺少的是明确确认原始消息的可能性。
这是如何完成的,或者哪种模式更适合我们的需求?