RabbitMQ之认识死信队列一
2019-04-11 本文已影响0人
瞿大官人
前言
RabbitMQ 有个队列叫死信队列,死信队列可以做蛮多事的,比如可以让消息半个小时后消费,规定每天几点钟消费消息等等。但其实死信队列与其他普通队列几乎是一样的。只不过消息在普通队列死亡后,普通队列根据自身设置的x-dead-letter-exchange
,以及x-dead-letter-routing-key
将消息推送到死信队列。如下图。
接下来实力操作一波,先定个小目标:普通队列的数据在过期后会自动往死信队列中推送。
实践
新建交换机
image.png新建普通队列
- 新建
normal.queue
队列。 - 设置
normal.queue
指向死信队列的x-dead-letter-exchange
,x-dead-letter-routing-key
。 -
设置消息过期时间。
新建普通队列
新建死信队列
新建死信队列由于上述的普通队列指定消息死亡后将会推送的交换机为dead-exchange
,路由键为dead.routingkey
,因此死信队列需要绑定dead-exchange
以及dead.routingKey
。
准备数据
现在往normal.queue
队列中发送六个数据。截图如下。
查看数据结果
由于normal.queue
队列设置消息过期为10000毫秒
,因此过了10000毫秒
后消息自动过期,并且死信队列增加六条消息。如下截图。
消息到达死信队列后可以到死信队列中查看消息死亡原因。如下图。
image.png
总结
前言中展示的图就是最好的总结。这里再次贴出来。
image.png