死信消息:
- 消息被拒绝(Basic.Reject或Basic.Nack)并且设置 requeue 参数的值为 false
- 消息过期了
- 队列达到最大的长度
设置死信队列
在RabbitMQ控制台的Queues设置
创建交换机,并绑定死信队列设置的路由
设置过期时间
- 队列设置:在
队列申明
的时候使用 x-message-ttl 参数,单位为 毫秒 - 单个消息设置:是设置
消息属性
的 expiration 参数的值,单位为 毫秒
监听死信队列
@RabbitListener(queues = "my.direct.queue.dlx.queue")
public void handleMessage(Message message){
System.out.println("====消费消息===handleMessage(message)");
System.out.println(message.getMessageProperties());
System.out.println(new String(message.getBody()));
}