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

尤里·丘洛夫斯基(Yuriy Chulovskyy)

我需要向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是不对消息进行分组(将消息一一发送)。

Aggregator1从中获取结果aggregator2并发送消息,而无需等待服务激活器组1发出的消息。

有什么建议?

阿尔特姆·比兰(Artem Bilan)

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

使用apply-sequence="true"框架填充标准correlation MessageHeaders并将它们存储在中Stack:嵌套的聚合器处理correlation其作用域,然后将其从堆栈中弹出以准备进行外部聚合。

并且嵌套aggregator应将其结果发送到external的输入通道aggregator对于最后一个,它看起来就像是服务的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

我可以在一个循环中使用2个循环语句吗?

来自分类Dev

我可以在一个活动Android中使用2个以上的回收者视图吗

来自分类Dev

我可以在一个循环中使用2个循环语句吗?

来自分类Dev

我可以在一个项目中使用2个不同版本的angular吗

来自分类Dev

Angular 2+ - 我可以制定一个使用路由器导航的指令吗?

来自分类Dev

我可以提供一个与 spring-data-rest GET 并行的端点吗?

来自分类Dev

我可以在一个模型中使用两个警卫吗?

来自分类Dev

我们可以在一个查询中使用两个枢轴吗?

来自分类Dev

我可以创建一个可以解包的类吗?

来自分类Dev

我可以创建一个可以解包的类吗?

来自分类Dev

我可以在一个侦听器中看到2个请求的结果吗?

来自分类Dev

我可以让一个变量在控制器中有一个 AKA 吗?

来自分类Dev

R Shiny:我可以在另一个输出中使用一个变量吗?

来自分类Dev

我可以在另一个任务中使用一个PowerShell任务中的功能吗?

来自分类Dev

我可以在表视图控制器中使用另一个表视图吗?

来自分类Dev

我可以在R中使用doParallel在Foreach中仅使用一个RODBC连接吗?

来自分类Dev

我可以在Rails中使用一个名为“交易”的模型吗?

来自分类Dev

我可以在同一个仓库中使用TortoiseGIT和Eclipse EGit吗?

来自分类Dev

我可以在同一个xhtml页面中使用多个托管bean吗?

来自分类Dev

我可以在angularjs中使用另一个模板引擎吗?

来自分类Dev

我可以在Cassandra中使用一个以数字开头的键空间吗?

来自分类Dev

我可以在JavaScript中使用另一个变量生成新数组吗?

来自分类Dev

我可以在一个foreach循环中使用两组变量吗?

来自分类Dev

我可以在同一个Laravel项目中使用多条路线吗?

来自分类Dev

我可以在一个终端中使用Visual Studio Code中的多个文件吗?

来自分类Dev

我可以在angularjs中使用另一个模板引擎吗?

来自分类Dev

我可以在一个链接中使用多个跨度吗?

来自分类Dev

我可以在同一个仓库中使用TortoiseGIT和Eclipse EGit吗?

来自分类Dev

我可以在一个Talend作业中使用两次Excel文件吗?

Related 相关文章

  1. 1

    我可以在一个循环中使用2个循环语句吗?

  2. 2

    我可以在一个活动Android中使用2个以上的回收者视图吗

  3. 3

    我可以在一个循环中使用2个循环语句吗?

  4. 4

    我可以在一个项目中使用2个不同版本的angular吗

  5. 5

    Angular 2+ - 我可以制定一个使用路由器导航的指令吗?

  6. 6

    我可以提供一个与 spring-data-rest GET 并行的端点吗?

  7. 7

    我可以在一个模型中使用两个警卫吗?

  8. 8

    我们可以在一个查询中使用两个枢轴吗?

  9. 9

    我可以创建一个可以解包的类吗?

  10. 10

    我可以创建一个可以解包的类吗?

  11. 11

    我可以在一个侦听器中看到2个请求的结果吗?

  12. 12

    我可以让一个变量在控制器中有一个 AKA 吗?

  13. 13

    R Shiny:我可以在另一个输出中使用一个变量吗?

  14. 14

    我可以在另一个任务中使用一个PowerShell任务中的功能吗?

  15. 15

    我可以在表视图控制器中使用另一个表视图吗?

  16. 16

    我可以在R中使用doParallel在Foreach中仅使用一个RODBC连接吗?

  17. 17

    我可以在Rails中使用一个名为“交易”的模型吗?

  18. 18

    我可以在同一个仓库中使用TortoiseGIT和Eclipse EGit吗?

  19. 19

    我可以在同一个xhtml页面中使用多个托管bean吗?

  20. 20

    我可以在angularjs中使用另一个模板引擎吗?

  21. 21

    我可以在Cassandra中使用一个以数字开头的键空间吗?

  22. 22

    我可以在JavaScript中使用另一个变量生成新数组吗?

  23. 23

    我可以在一个foreach循环中使用两组变量吗?

  24. 24

    我可以在同一个Laravel项目中使用多条路线吗?

  25. 25

    我可以在一个终端中使用Visual Studio Code中的多个文件吗?

  26. 26

    我可以在angularjs中使用另一个模板引擎吗?

  27. 27

    我可以在一个链接中使用多个跨度吗?

  28. 28

    我可以在同一个仓库中使用TortoiseGIT和Eclipse EGit吗?

  29. 29

    我可以在一个Talend作业中使用两次Excel文件吗?

热门标签

归档