RabbitMQ死信队列+TTL介绍

  • 什么是TTL

    • time to live 消息存活时间
    • 如果消息在存活时间内未被消费,则会被清除
    • RabbitMQ支持两种ttl设置
      • 单独消息进行配置ttl
      • 整个队列进行配置ttl(居多)
  • 什么是RabbitMQ的死信队列

    • 没有被及时消费的消息存放的队列
  • 什么是RabbitMQ的死信交换机

    • Dead Letter Exchange(死信交换机,DLX):当消息成为死信后,会被重新发送到另一个交换机,这个交换机就是DLX死信交换机

  • 消息有哪几种情况成为死信

    • 消费者拒收消息(basic.reject/basic.nack),并且没有重新入队requeue=false
    • 消息在队列中未被消费,且超过队列或者消息本身的过期时间TTL(time-to-live)
    • 队列的消息长度达到极限
    • 结果:消息成为死信后,如果该队列绑定了死信交换机,则消息会被死信交换机重新路由到死信队列
posted @ 2021-09-06 18:05  Gen2021  阅读(95)  评论(0编辑  收藏  举报