RabbitMQ - 在发布者方面了解消费者已确认消息

时间:2017-06-28 13:28:43

标签: rabbitmq amqp mq

我使用RabbitMQ作为MQ代理。是否有可能获得所有队列都已确认某条消息的通知?也就是说,如果它被发送到5个队列,我们​​会在确认最后一个/第5个消费者后收到通知。

我知道你可以引入reply-to队列,但这不是我想要的。我不想强迫消费者在确认后将确认消息发送到某个队列。

在经纪商和/或发布商重启后,是否也可以继续此跟进?

1 个答案:

答案 0 :(得分:1)

否,您无法声明。

您无法从发布者的角度知道消息是否已在消费者方面得到确认,并且在大多数情况下,无论如何这都不是您真正想要的东西。

但是,您可以使用Publisher Confirms。这些将通知发布者消息已路由到所有绑定的队列。

发布商和消费者方面都有data safety的几种机制。通常,您会相信代理不会在两者之间错过消息,就像您相信数据库会随着时间的推移保留记录一样。

但是,如果您的工作流程要求您的发布方被告知完成复杂的分布式任务,并且您真的无法摆脱fire and forget,那么您将需要通常通过一条附加消息自己实施该响应。