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