一 概述
对于RabbitMQ中被删除的消息是真的被删除了吗,答案是:NO;被删除的消息去往何方就涉及到了死信队列。
二 死信交换机
死信交换机,Dead-Letter-Exchange 简称DLX。它是用来接收死信消息(Dead Mesasge)。成为死信消息的情况:
- 消息被拒绝。
- 消息过期。
- 消息队列中的消息已经达到最大长度。
当队列中的消息变成死信消息之后,就会被发送到DLX,而绑定DLX的消息队列则为死信队列。
DLX本质上也是一个普通的交换机,我可以为任意队列指定DLX,当该队列总存在死信时,RabbitMQ就会自动的将这个死信发布到DLX上,进而被路由到另一个绑定了DLX的队列上(死信队列)。
三 死信队列
绑定了死信交换机的队列就为死信队列。