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等待一定时间,再接着流程往后走。