RabbitMQ之认识死信队列一
2019-04-11 本文已影响0人
瞿大官人
前言
RabbitMQ 有个队列叫死信队列,死信队列可以做蛮多事的,比如可以让消息半个小时后消费,规定每天几点钟消费消息等等。但其实死信队列与其他普通队列几乎是一样的。只不过消息在普通队列死亡后,普通队列根据自身设置的x-dead-letter-exchange
,以及x-dead-letter-routing-key
将消息推送到死信队列。如下图。

接下来实力操作一波,先定个小目标:普通队列的数据在过期后会自动往死信队列中推送。
实践
新建交换机

新建普通队列
- 新建
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毫秒
后消息自动过期,并且死信队列增加六条消息。如下截图。

消息到达死信队列后可以到死信队列中查看消息死亡原因。如下图。

总结
前言中展示的图就是最好的总结。这里再次贴出来。
