如何通过相关 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
假设我有一个需要按顺序执行的命令管道,并且一些命令包含多个应该并行执行的操作(相同的相关 ID)。假设我需要知道何时执行所有并行操作,以便在管道中进一步执行。
是否可以仅使用 RabbitMQ 通过使用交换和队列而不使用外部数据源(如数据库)来实现这种编排?
我对以下用例感兴趣: 我刚刚在同一队列上发布了 3 条相同类型的消息。这些消息正在并行处理。我想只在相同关联ID的所有消息都成功完成后才发布一条新消息。
有没有办法用 RabbitMQ 实现这个?
听起来您可以使用分散-聚集模式。这用图表很好地解释了该模式:
http://www.enterpriseintegrationpatterns.com/patterns/messaging/BroadcastAggregate.html
下面是关于如何使用 RabbitMQ 实施的教程: http://geekswithblogs.net/michaelstephenson/archive/2012/08/06/150373.aspx