消息队列 - 死信、延迟、重试队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息队列 - 死信、延迟、重试队列相关的知识,希望对你有一定的参考价值。

参考技术A DLQ(Deal Letter Queue),死信队列。当一个消息在队列中变成死信之后,他能被重新发送到 DLQ 中,与 DLQ 绑定到队列就是死信队列。

生产者生产一条消息,存储到普通队列中;设置队列的过期时间为 10 秒,在 10 秒内没有消费者消费消息,那么判定消息过期;此时如果设置了死信队列,过期消息被丢给死信队列交换机,然后被存储在死信队列中。

顾名思义就是延迟执行消息,比如我们可以增加一个队列并设置其超时时间为 10 秒并且不设置任何消费者,等到消息超时,我们可以将消息放入死信队列,让消费者监听这个死信队列就达到了延迟队列的效果。

重试的消息在延迟的某个时间点(业务可设置)后,再次投递给消费者。而如果一直这样重复消费都持续失败到一定次数,就会投递到死信队列,最后需要进行人工干预。

MQ 死信队列/延迟队列-( 商品秒杀后30分钟之内付款)

以上是关于消息队列 - 死信、延迟、重试队列的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ之消息可靠性死信交换机惰性队列及集群

RabbitMQ-消息可靠性&延迟消息

RocketMQ:死信队列和消息幂等

MQ-死信队列实现消息延迟

rabbitmq~消息失败后重试达到 TTL放到死信队列(事务型消息补偿机制)

RocketMQ的死信队列