当前位置: 首页 > 知识库问答 >
问题:

我可以在一个Spring集成流中使用2个聚合器吗?

海雪松
2023-03-14

我需要向3个服务发送消息,并在最后聚合结果
这很容易通过发布订阅频道实现-

当其中一个服务实际上是对其他服务的2次调用时,就会出现问题。现在我想介绍另外的发布订阅频道和聚合器。

例如。

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

因此聚合器2不会对消息进行分组(逐个发送)。

聚合器1从聚合器2获取结果并发送消息,无需等待service activator组1的消息。

有什么建议吗?

共有1个答案

佘京
2023-03-14

您的所有发布订阅频道都应该有应用序列。当然,如果不使用自定义关联和发布策略。

使用appy-序列="true"框架填充标准相关性MessageHeaders并且它们存储在Stack中:嵌套聚合器处理其范围的相关性并将它们从堆栈中弹出以准备进行外部聚合。

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

 类似资料:
  • 我想使用聚合器从两条消息中创建一条消息,但我不知道如何做到这一点。 目前,我正在从一个目录中读取两个文件,并希望将这些消息聚合为一个。 我的整个项目是这样的: 读入。拉链- 如果我可以在解压缩文件后发送一条包含两个有效负载的消息,那就太好了,但在读取后聚合就足够了。 我的拉链看起来像这样: 它将这些文件放入两个目录中,我使用FileReadingMessageSource再次从中读取它们。我还想只

  • 使用下面的PyMongo查询。我使用了Mongo网上研讨会的一些技巧,他们建议使用_id字段来存储时间戳,以提高性能和内存使用。 我得到的结果只按天排序。在管道的$sort步骤中,我只使用了 结果是按年月正确排序的。在$sort step上可以使用多少字段有限制吗? 以下是一些示例文档

  • 我只是问是否有一个替代的方式为下面的更新。 更新test_table集 col 1=trim(col1), col 2=trim(col2), col 3=trim(col3), col 4=trim(col4), col 5=trim(col5), 在我的真实表中,大约有20列,也许更多。有没有一个快速的方法,我可以修剪所有的柱子在一个镜头? 查找类似查询(如果存在): update test_

  • 问题内容: 我有一个由Java 8流表示的数据集: 我可以看到如何对其进行过滤以获取随机子集-例如 我还可以看到如何减少该流,例如得到两个表示数据集的两个随机一半的列表,然后将它们转换回流。但是,是否有直接方法可以从最初的一个生成两个流?就像是 感谢您的任何见解。 问题答案: 不完全是。您不可能一分之二。这没有道理-您将如何遍历一个而不需要同时生成另一个?流只能操作一次。 但是,如果要将它们转储到

  • 问题内容: 有没有办法在Python中将两个装饰器组合成一个新的装饰器? 我意识到我可以将多个装饰器应用于一个函数,但是我很好奇是否有一些简单的方法可以将两个装饰器组合成一个新的装饰器。 问题答案: 更一般一些: 然后 相当于

  • 我正在尝试编写一个存储过程,其中我使用2个表来获取基于条件的数据,但它给出了错误。 我的SP是: 错误: 以下查询失败:“CREATE DEFINER=@PROCEDURE(在DATETIME中,在INT中,在INT中,以及在INT中)不确定性包含SQL安全定义器,如果dateposteds