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

标签 rabbitmq rabbitmq-exchange

假设我有一个需要按顺序执行的命令管道,并且一些命令包含多个应该并行执行的操作(相同的相关 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/

相关文章:

c# - 使用 .NET Core 注册 RabbitMQ 使用者?

ruby-on-rails - 工作客户端在启动后几秒钟内停止

RabbitMQ - 如何联合/镜像消息

java - RabbitMQ,话题交流

java - DeliverCallback deliverCallback = (consumerTag, delivery) 函数未被调用

rabbitmq - 使用通配符时获取路由 key 的消费者

data-structures - RabbitMQ 请求/响应负载结构

java - RabbitMQ 工作队列 : Starting Consumer after Sender [Java]

RabbitMQ header 与列表交换

java - 创建 spring Pollable Channel 时出现异常