文章目录
- 1.问题产生
- 2.问题解决
- 1.询问gpt
- 2.独立思考
1.问题产生
我在给一个普通队列去绑定死信交换机和死信队列的时候,发现总是报错x-dead-letter-exchange的属性为none
ERROR [PFTID:] [Module:defaultModule] org.springframework.amqp.rabbit.connection.CachingConnectionFactory - Shutdown Signal: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg ‘x-dead-letter-exchange’ for queue ‘elkQueue’ in vhost ‘/’: received the value ‘dlxExchange’ of type ‘longstr’ but current is none, class-id=50, method-id=10)
2.问题解决
1.询问gpt
他说可能跟交换机创建的顺序有关,我就将死信交换机的创建放到了前面,但是还是报同样的错误
2.独立思考
先是检查了一下死信交换机的相关配置是不是有问题,但是发现没问题,然后注意到了这个持久化队列的配置,因为前一天刚做完对mq的消息可靠性的配置,就想起了持久化队列的概念,保留元数据,在启动时自动恢复,我一想,既然是自动恢复的,那么我新加的配置肯定不能生效啊,所以就将交换机和队列都删除,重新启动,就好了。