Rabbitmq 死信队列 理解

整个过程需要两组交换机与队列进行操作;

首先建立第一组交换机与队列

1. 建立交换机 exchange1, 类型 direct

2. 建立队列 queue1

3. 使用 routing-key1 将 exchange1 与 queue1 进行绑定, 这样当发送带有 routing-key1的消息 ,到 exchange1的时候, exchange1 会把消息路由到 队列 queue1 上.

然后建立第二组交换机与队列

1. 建立交换机 exchange2, 类型 direct

2. 建立队列 queue2, 设置参数

"x-dead-letter-exchange" 为 exchange1
"x-dead-letter-routing-key" 为 routing-key1

这样 queue2 里消息,达到指定时间后,会自动路由到exchange1上,进而到达队列 queue1上。

3. 使用 routing-key2 将 exchange2与 queue2 进行绑定。

使用过程:

1. 建立发送到exchange2的发送者;

2. 建立接收队列 queue1的 消费者;

总结:

整个数据结构如下:

exchange2->queue2->exchange1->queue1

消息从exchange2进入,最终到queue1的消费者进行消费,中间的queue2没有消费者,依据过期时间的作用,自动充当一个定时作用;消息走到queue2等待一定时间,再接着流程往后走。

经验分享 程序员 微信小程序 职场和发展