gpt4 book ai didi

java - 我可以在一个 Spring Integration 流程中使用 2 个聚合器吗?

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:43 25 4
gpt4 key购买 nike

我需要向 3 个服务发送消息,并在最后聚合结果。
通过publish-subscribe-channel->service-activator(s)->aggregator这很容易。

当其中一项服务实际上是对其他服务的 2 次调用时,就会出现问题。此时我想引入额外的 publish-subscribe-channel 和聚合器。

例如

publish-subscribe-channel1 -> service-activator group1 -> aggregator1
\/-> service call -> publish-subscribe-channel2 -> service-activator group2 -> aggregator2

因此aggregator2不会对消息进行分组(将它们一一发送出去)。

Aggregator1aggregator2 获取结果并发送消息,而无需等待来自服务激活器组 1 的消息。

有什么建议吗?

最佳答案

您的所有 publish-subscribe-channel 都应具有 apply-sequence="true"。当然,如果您不使用自定义correlationrelease策略。

使用apply-sequence="true",框架会填充标准关联 MessageHeaders,并将它们存储在Stack:嵌套聚合器处理其范围的相关性,并将它们从堆栈中弹出,为外部聚合做好准备。

嵌套的聚合器应将其结果发送到外部聚合器的输入 channel 。对于最后一个,它看起来只是服务的结果。

关于java - 我可以在一个 Spring Integration 流程中使用 2 个聚合器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com