190_RabbitMQ高级-死信队列


概述

:::info
DLX,全称为Dead-Letter-Exchange , 可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列。
消息变成死信,可能是由于以下的原因:

  • 消息被拒绝
  • 消息过期
  • 队列达到最大长度

DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。当这个队列中存在死信时,Rabbitmq就会自动地将这个消息重新发布到设置的DLX上去,进而被路由到另一个队列,即死信队列。
要想使用死信队列,只需要在定义队列的时候设置队列参数 x-dead-letter-exchange 指定交换机即可。
:::
3f9a11d5ee5f8d74f49e82869408bb78_kuangstudy95eb209a-1bcd-487b-832a-e09d88da3beb.png

在rabbitMQ管理界面中结果

未过期:
0bd35e1dfaa3e6ebeee68811ea57eeb4_kuangstudyadc3ca27-83af-4755-91d0-bac40fcb0b9a.png
过期后:
67ba06649ef0c3daeb308b56cd160817_kuangstudye74b63ff-ce96-4f09-8df4-a0ff45701375.png
df6ca1a36687ccfc9dfbbfb81a8dd2e6_kuangstudy4b80ded8-9524-4986-9485-aad2946124b2.png

死信队列测试

image.png
image.png
image.png
image.png

posted @ 2022-08-11 21:19  清风(学习-踏实)  阅读(36)  评论(0)    收藏  举报