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

Iva*_*dov 3 rabbitmq rabbitmq-exchange

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

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

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

有没有办法用 RabbitMQ 实现这一点?

ill*_*lug 6

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

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

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

  • 链接的博客不见了,请参见https://web.archive.org/web/20120815011215/geekswithblogs.net/michaelstephenson/archive/2012/08/06/150373.aspx (2认同)