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)
- 队列的消息长度达到极限
- 结果:消息成为死信后,如果该队列绑定了死信交换机,则消息会被死信交换机重新路由到死信队列