如何通过相关ID将RabbitMq消息聚合为单个消息

时间:2016-09-01 09:16:11

标签: rabbitmq rabbitmq-exchange

让我们说我有一系列需要顺序执行的命令,而且有些命令包含多个应该并行执行的操作(相同的相关ID)。让我们假设我需要知道何时执行所有并行操作,以便继续在管道中执行。

是否可以通过使用交换和队列单独使用RabbitMQ来实现这种编排,而无需使用数据库等外部数据源?

我对以下用例感兴趣: 我刚刚在同一个队列上发布了3条相同类型的消息。这些消息正在并行处理。我想仅在相同关联ID的所有消息都成功完成时才发布新消息。

有没有办法用RabbitMQ实现这个目标?

1 个答案:

答案 0 :(得分:4)

听起来你可以使用分散 - 聚集模式。这用图表很好地解释了这种模式:

http://www.enterpriseintegrationpatterns.com/patterns/messaging/BroadcastAggregate.html

这是一个关于如何使用RabbitMQ实现的教程: http://geekswithblogs.net/michaelstephenson/archive/2012/08/06/150373.aspx