繁体   English   中英

Spring集成中的会话存储和处理多个http出站网关

[英]Session storage in spring integration and processing multiple http outbound gateways

集成图的示例如下

  1. HTTP入站网关以及GET参数,例如“ dataValue”
  2. 呼叫两个单独的http出站网关
  3. 处理两个出站网关的响应
  4. 显示两个出站网关的结果的响应以及传递的GET参数

我们有两个要求,一个需要向两个http出站网关发送两个单独的请求,这两个网关提供两种不同类型的响应(一个带有基础数据,一个带有价格数据)。 我们如何汇总这两个结果进行处理。 是否有需要使用的特殊类型的聚合器,模式等

另一个要求是,因为我们有一个http入站网关,该网关调用上述两个http网关,处理两个请求并生成json输出。 在到http入站网关的请求中,可能传递了一个名为“ dataValue”的GET参数,其中包含值“ 17”。 处理完两个http出站网关响应后,请求完成后,必须将“ dataValue”参数和作为GET参数传递的值附加到响应中。 什么是存储和还原每个特定请求的“ dataValue”参数并将其附加到响应的最佳方法。 我们可以将其通过另一个渠道传递给最终响应的聚合器,还是可以针对每种请求和此类技术将其存储在会话存储中。

问候,米林达

对不起,我的答复很晚(不确定我是怎么想念您的问题),无论如何,我希望答案会有所帮助。

关于dataValue GET请求参数:

您可以将其填充到消息标题:

<int-http:inbound-gateway path="/myPath?dataValue={dataValue}"
                     request-channel="processChannel">
    <int-http:header name="dataValue" expression="#requestParams.dataValue"/>
</int-http:inbound-gateway>

回覆。 几个<int-http:outbound-gateway>

您可以将<publish-subscribe-channel>apply-sequence="true" -最后, <aggregator>将对单个reply正确group

为了获得更好的性能,您可以将executor添加到该<publish-subscribe-channel> ,并且您的<int-http:outbound-gateway>将会被并行调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM