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

How to aggregate RabbitMq messages into single message by correlation ID

假设我有一个需要按顺序执行的命令管道,并且一些命令包含多个应该并行执行的操作(相同的相关 ID)。假设我需要知道何时执行所有并行操作,以便在管道中进一步执行。

是否可以仅使用 RabbitMQ 通过使用交换和队列而不使用外部数据源(如数据库)来实现这种编排?

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

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

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

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

下面是关于如何使用 RabbitMQ 实施的教程: http://geekswithblogs.net/michaelstephenson/archive/2012/08/06/150373.aspx