RabbitMQ-在发布者端发现一条消息已被消费者确认

The*_*ler 5 amqp rabbitmq

我正在使用RabbitMQ作为MQ代理。是否可以收到所有队列都已确认某条消息的通知?也就是说,如果将其发送到5个队列,则在最后5个使用方确认后,我们会收到通知。

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

代理和/或发布者重新启动后,是否还可以继续此后续行动?

ist*_*iuk 2

不,正如你所说,这是不可能的。

从发布者端,您无法知道消息是否已在消费者端得到确认,并且在大多数模式中,无论如何,这都不是您真正想要的东西。

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

发布者和消费者双方都有多种数据安全机制。您通常会相信代理不会错过中间的消息,就像您相信数据库会随着时间的推移保存记录一样。

尽管如此,如果您的工作流程要求您的发布方获悉复杂的分布式任务的完成情况,并且您确实无法摆脱“一劳永逸”的情况,那么您将需要自己实现该响应,通常是通过附加消息的方式。