【问题标题】:apache-camel request/reply without activemq/jms没有 activemq/jms 的 apache-camel 请求/回复
【发布时间】:2012-12-07 06:58:19
【问题描述】:

我的要求是有一个网络服务,它将接收来自客户端的请求,然后通过骆驼路由,丰富它并将其转发到其他客户端位置的另一个网络服务,获得响应并将其发送回原始请求者。

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

from(jms:queue:INQueue).to("http:X").to(jms:OUTQueue)

我理解正确。如果我们这样做,我们是否需要设置回复标题。 我想这解决了这个问题。克劳斯(骆驼神:P)早些时候在帖子中解释过没有必要设置相关 ID,因为如果没有分配骆驼,它会自动设置。Refer Here

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

我也想这样做

<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 服务有返回值的操作。所以我们接收请求,将其发送到预处理器,然后调用远程 web 服务作为 http 端点,获取响应,对其进行后处理,响应是路由结束时的消息(我是正确的)。我的问题是请求和响应是否匹配。我应该如何测试它。我们还将将请求从代理多播到各种 http 端点,并在将回复发送给客户端请求者之前聚合回复。我真的应该继续吗这条路线还是一个糟糕的设计。

【问题讨论】:

    标签: jms cxf activemq apache-camel


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢@Claus。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2020-10-11
    • 2014-06-19
    • 2012-10-25
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多