ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 死信队列 1. DLX,Dead-Letter-Exchange; 2. 应用DLX,当消息再一个队列中变成死信(dead message)之后,它能被重新publish到另外一个exchange,这个exchange就是DLX; ## 消息变为死信队列的集中情况 1. 消息被拒绝(basic.reject/basic.nack) 并且requeue=false; 2. 消息TTL过期; 3. 队列达到最大长度; ## DLX 1. DLX也是一个正常的exchange,和一般的exchange没有区别,它能在任何队列上被指定,实际上就是设置某个队列的属性; 2. 当这个队列中有死信时,rabbitmq就会自动将这个消息重新发布到设置的exchange上去,进而被路由到另一个队列; 3. 可以监听这个队列中消息做相应的处理,这个特性可以弥补rabbitmq3.0以前支持的immediate参数的功能; ## 设置死信队列 首先需要设置死信队列的exchange和queue,然后进行绑定; 1. exchange : dlx.exchange; 2. queue:dlx.queue; 3. routingkey : # 4. 然后我们进行正常声明交换机,队列,绑定,只不过我们需要在队列加上一个参数即可: argments.put("x-dead-letter-exchange","dlx,exchange").;