RabbitMQ-死信交换机(延时队列)

RabbitMQ-死信交换机(延时队列)

延时队列 = TTL + 死心交换机 或者 使用RabbitMQ提供的消失消息插件

死信交换机,当一个队列中的消息满足下列情况之一时,就可以成为死信

  1. 消费者使用basic.reject或basic.nack声明消费失败,并且消息的requeue参数设置为false
  2. 消息是一个过期消息,超时无人消费
  3. 要投递的队列,消息堆满了,最早的消息就可能成为死信

TTL,也就是Tile-To-Live。如果一个队列中的消息TTL结束仍未被消费,则就会变为死信。

  1. 消息所在的队列设置了存活时间
  2. 消息本身设置了存活时间

‍

RabbitMQ-死信交换机(延时队列)

  1. 可以使用TTL + 死信交换机来实现,死信交换机的触发条件是这样的,1 当消息被拒绝后会把消息放到死信中 2 当消息的TTL过期后也会被放到死信交换机中 3 当队列的消息堆满后,最早的消息可能会放到死信中。
  2. 还有另外一种方式,就是RabbitMQ提供的插件,这样实现延时队列就会见会简单很多,声明一个队列,设置delayed属性为True,发送消息的时候添加x-delay头,添加过期时间。
相关推荐
后台模板学习2 天前
Kafka 与 RabbitMQ 在用户认证与权限管理场景
kafka·rabbitmq·linq
装不满的克莱因瓶2 天前
支付订单成功异步MQ权益发放设计和开发
java·架构·系统架构·rabbitmq·硬件架构
千里达景区票务系统3 天前
消息队列选型对比:RabbitMQ vs RocketMQ vs Kafka
kafka·消息队列·rabbitmq·rocketmq
未秃头的程序猿6 天前
@ConditionalOnMissingBean 把我配好的 RabbitMQ 手动 ack 吃掉了
后端·rabbitmq
一条泥憨鱼6 天前
【RabbitMQ】高级篇
java·分布式·rabbitmq·php·ruby
阳光不锈@8 天前
三大主流消息队列架构设计思想剖析:从 RabbitMQ 到 RocketMQ 的改造实践
kafka·rabbitmq·rocketmq·rabbit改造rocket·去除rabbitmq·rabbitmq改造
catino14 天前
RabbitMQ详解
分布式·rabbitmq·ruby
叶总没有会14 天前
RabbitMQ高级
分布式·rabbitmq
Linux实战笔记16 天前
记一次消息队列选型对比线上排查:Kafka/RabbitMQ/Pulsar 技术选型
kafka·rabbitmq·高并发·pulsar·消息队列选型
张彦峰ZYF16 天前
一条消息的丢与重:Kafka 与 RabbitMQ 可靠投递的确认、位点、死信与幂等全链路
后端·kafka·消息队列·rabbitmq·isr·解耦与削峰·丢失与重复