死信、延迟、重试队列

死信队列

DLQ(Deal Letter Queue),死信队列。当一个消息在队列中变成死信以后,他能被从新发送到 DLQ 中,与 DLQ 绑定到队列就是死信队列。
 web

什么状况下须要死信队列

  • 消息被拒绝
  • 消息过时
  • 队列达到最大长度
    在这里插入图片描述
     
    生产者生产一条消息,存储到普通队列中;设置队列的过时时间为10秒,在10秒内没有消费者去消费消息,那么断定消息过时;此时若是设置了死信队列,过时消息被丢给私信队列交换机,而后被存储在死信队列中。
     

延迟队列

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

重试队列

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