rabbitMQ死信队列和延迟交换机

发布时间 2023-07-14 14:35:30作者: 青山远树

一、死信队列(deadLetters)

1.死信产生的三种方式

(1)消息被消费者拒绝,requeue设置为false

 

  message在正常传输中消费者执行了nack或者reject且requeue变为false则将该message存储到死信交换机,再送入死信队列,重新被其他的消费者消费

 

(2)消息的TTL到期

  消息的TimeToLive生存周期到期

(3)消息队列的长度达到最大长度,新进来的消息变为死信

  消息队列的长度达到限制,存不进去新的信息

  基于死信队列,队列消息已满的情况下,消息也不会丢失,剩余的部分会被丢到死信队列中去

2.死信队列的应用:  

  (1)处理过长的消息队列,保障消息不丢失

  (2)实现延迟消费效果:比如下订单时有15分钟的付款时间

二、延迟交换机

通过死信队列实现延迟交换