RabbitMQ 死信队列

文章目录

  • 死信队列
    • 定义
    • 应用场景
    • 产生死信的原因
    • 设置TTL时间限制
    • 设置队列最大长度限制
    • 设置消息被拒绝且不放回队列中

死信队列

定义

无法处理的消息

应用场景

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

产生死信的原因

消息TTL(存活时间)过期

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

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

RabbitMQ 死信队列_第1张图片

设置TTL时间限制

生产者

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

消费者
RabbitMQ 死信队列_第2张图片

设置队列最大长度限制

消费者
RabbitMQ 死信队列_第3张图片

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

消费者
RabbitMQ 死信队列_第4张图片

你可能感兴趣的:(rabbitmq,java-rabbitmq,rabbitmq,分布式)