channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILE
問題描述
** MQ發送異常 **
詳細報錯信息
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg ‘x-dead-letter-exchange’ for queue ‘topic.log.gateway’ in vhost ‘/’: received the value ‘deadLetterTopicLogExchange’ of type ‘longstr’ but current is none, class-id=50, method-id=10)
原因分析:
mq中已經存在了該gateway 隊列,而且我這里新使用的隊列是包含綁定死信隊列這個屬性的(之前存在的是一個普通隊列),所以存在了沖突。
解決方案:
將舊的名字相同的隊列刪除 或者 使用新的隊列名
PS
題外話:啟動的時候要先啟動生產者,再啟動消費者。不然先啟動消費者的話,創建的隊列就會是普通隊列了,后面再啟動生產者的話就會報錯了(已經存在隊列了)。
總結
以上是生活随笔為你收集整理的channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot RabbitMQ整
- 下一篇: 使用QT发送http/https的pos