RabbitMQ 死信队列

Posted 夏小花花

tags:

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

文章目录

死信队列

定义

无法处理的消息

应用场景

应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中,还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效

产生死信的原因

消息TTL(存活时间)过期

队列达到最大长度(队列满了,无法在添加数据导MQ中)

消息被拒绝(否定应答并且不放回队列当中)
下图为死信队列的逻辑图,可以参考下图理解一下

设置TTL时间限制

生产者

AMQP.BasicProperties properties = new AMQP.BasicProperties().builder().expiration("10000").build();

消费者

设置队列最大长度限制

消费者

设置消息被拒绝且不放回队列中

消费者

以上是关于RabbitMQ 死信队列的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ死信队列

RabbitMQ的死信队列和延时队列

RabbitMQ--死信队列/延迟队列--使用/原理

RabbitMQ实战-死信队列

RabbitMQ 死信队列

使用RabbitMQ处理死信队列