无activemq/jms的apache驼峰请求/应答

无activemq/jms的apache驼峰请求/应答,jms,cxf,activemq,apache-camel,Jms,Cxf,Activemq,Apache Camel,我的要求是有一个web服务,它将接收来自客户端的请求,然后通过camel路由,充实它并将其转发到其他客户端的另一个web服务,获得响应并将其发送回原始请求者 from(webserviceURI) .inOut().to("jms:queue:INQueue?replyTo=OUTQueue?replyToType=Exclusive"); from(jms:queue:INQueue).to("http:X").to(jms:OUTQueue) 我理解正确。如果我们这样做,是否需要将R

我的要求是有一个web服务,它将接收来自客户端的请求,然后通过camel路由,充实它并将其转发到其他客户端的另一个web服务,获得响应并将其发送回原始请求者

from(webserviceURI)
  .inOut().to("jms:queue:INQueue?replyTo=OUTQueue?replyToType=Exclusive");

from(jms:queue:INQueue).to("http:X").to(jms:OUTQueue)
我理解正确。如果我们这样做,是否需要将ReplyTo设置为header。 我想这就解决了问题。在之前的一篇文章中,克劳斯(骆驼神:P)解释说,没有必要设置相关id,因为如果没有分配,骆驼会自动设置相关id

我的问题是,我们正在寻找超轻量的实现。我们可能不得不应对低至300 MB的内存。没有activeMQ,没有SMX。只需使用karaf。如果我们需要使用占用空间小的jms,最好的jms提供程序是什么?或者activeMQ可以吗

我也在考虑这样做

<from uri="cxf:bean:cxfProxyEndpoint?dataFormat=MESSAGE" />
<camel:convertBodyTo type="java.lang.String"></camel:convertBodyTo>
<!-- lot of pre processors  here-->
<to uri="http://X:8080/X">
<!-- lot of post processors-->


cxf代理Web服务具有返回值的操作。因此,我们接收请求,将其发送到预处理器,然后作为http端点调用远程Web服务,获取响应,对其进行后期处理,并且响应是路由末尾的消息(我是否正确)。我的问题是请求和响应是否匹配。我应该如何测试它。我们还将从代理服务器将请求多播到各个http端点,并在将其发送到客户端请求者之前聚合响应。我是真的要继续使用此路由,还是这是一个糟糕的设计

是的,后一个例子会匹配。每个web服务请求将单独路由,来自外部http服务器的响应将自动匹配。在您的用例中,您很可能不需要JMS


如果您有一个外部系统,并且需要使用JMS消息传递与之集成,那么JMS是有意义的。否则,如果没有,我建议寻找没有它的解决方案。

谢谢@Claus。非常感谢。