spring集成分布式并行Scatter Gather模式
Posted
技术标签:
【中文标题】spring集成分布式并行Scatter Gather模式【英文标题】:spring integration distributed parallel Scatter Gather pattern 【发布时间】:2022-01-16 02:51:27 【问题描述】:我需要实现以下架构:
我有大订单,必须拆分成较小的订单(并行)并发送到下游异步休息端点。
完成订单(失败或成功)后,下游订单 API 将消息发布到回复队列(kafka/rabbitmq) 具有相关 ID。
需要有聚合监听器来收集所有响应并将最终输出发送给调用者。
我正在考虑使用 Spring 集成 Scatter Gather 模式和其他有用的 Spring 功能。
你能帮我展示一个如何在 Spring-integration 的帮助下实现这种架构的示例
【问题讨论】:
【参考方案1】:大订单必须拆分成小订单(并行)
这不是 scatter-gather 的设计目的。它的目的是对相同的输入执行许多请求,例如向经销商询问汽车报价,然后选择最适合您的汽车。
您所问的更像是一个拆分器-聚合器。
因此,您只需对订单对象执行拆分功能,并在其输出通道中生成所需数量的商品。这个必须是ExecutorChannel
才能并行处理这些拆分的项目。
由于您谈论的是对原始客户端的回复,因此您无法使您的聚合器分布式(同一应用程序的多个实例),但您仍将获得异步、并行处理的好处,只需使用 ExecutorChannel
。不要忘记在整个流程中使用 replyChannel
标头,以便最终聚合器知道在哪里产生回复。
【讨论】:
以上是关于spring集成分布式并行Scatter Gather模式的主要内容,如果未能解决你的问题,请参考以下文章