rabbitmq死信队列
概念:当消息成为死信时,会将该消息放到死信交换机当中,这个交换机也绑定的其他队列,还可以继续进行消费。
消息什么时候会变成死信:
- 当队列的长度达到一个限制,后面的消息都会成为死信
- 当消费者拒绝接受这条消息,并没有设置一个属性requeye=true,就是说没有把这条消息重新放回原队列,也会变成死信
- 消息过期时间达到了并没有被消费
在配置文件声明队列时指定死信交换机的名称和死信交换机的路由key
<entry key="x-dead-letter-exchange" value="死信交换机名称"/>
<entry key="x-dead-letter-routing-key" value="死信交换机的路由key"/>
定义死信交换机和死信交换机对应的队列和普通的没有任何区别
注:配置死信交换机的路由key是一个单词或者多个单词,而不是通配符,比如死信交换机和死信队列对应的路由key是gwx.#,那么一般队列连接这个死信交换机的时间指定的路由key就是gwx.后面随便写,就相当于队列发了条消息指定了路由key,然后死信交换机再通过这个路由key去找对应的死信队列。