【问题标题】:spring integration distributed parallel Scatter Gather patternspring集成分布式并行Scatter Gather模式
【发布时间】:2022-01-16 02:51:27
【问题描述】:

我需要实现以下架构:

我有大订单,必须拆分成较小的订单(并行)并发送到下游异步休息端点。

完成订单(失败或成功)后,下游订单 API 将消息发布到回复队列(kafka/rabbitmq) 具有相关 ID。

需要有聚合监听器来收集所有响应并将最终输出发送给调用者。

我正在考虑使用 Spring 集成 Scatter Gather 模式和其他有用的 Spring 功能。

你能帮我展示一个如何在 Spring-integration 的帮助下实现这种架构的示例

【问题讨论】:

    标签: spring-integration distributed


    【解决方案1】:

    大订单必须拆分成小订单(并行)

    这不是 scatter-gather 的设计目的。它的目的是对相同的输入执行许多请求,例如向经销商询问汽车报价,然后选择最适合您的汽车。

    您所问的更像是一个拆分器-聚合器。

    因此,您只需对订单对象执行拆分功能,并在其输出通道中生成所需数量的商品。这个必须是ExecutorChannel 才能并行处理这些拆分的项目。

    由于您谈论的是对原始客户端的回复,因此您无法使您的聚合器分布式(同一应用程序的多个实例),但您仍将获得异步、并行处理的好处,只需使用 ExecutorChannel。不要忘记在整个流程中使用 replyChannel 标头,以便最终聚合器知道在哪里产生回复。

    【讨论】:

      猜你喜欢
      • 2018-01-20
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 2018-12-27
      • 2020-05-07
      • 2021-11-26
      • 2023-04-04
      • 2013-04-17
      相关资源
      最近更新 更多