1. 權(quán)限問(wèn)題
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'guest', class-id=10, method-id=40)
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-4.0.2.jar:4.0.2
]
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32) ~[amqp-client-4.0.2.jar:4.0.2]
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:366) ~[amqp-client-4.0.2.jar:4.0.2]
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:229) ~[amqp-client-4.0.2.jar:4.0.2]
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:117) ~[amqp-client-4.0.2.jar:4.0.2]
... 13 common frames omitted
這種問(wèn)題用戶沒(méi)有權(quán)限需要 添加權(quán)限
添加權(quán)限有兩種
- 在dos命令中設(shè)置
rabbitmqctl set_permissions -p / guest '.* ' ' .* ' '.*'
顯示Setting permissions for user "guest" in vhost "/" 表明設(shè)置權(quán)限成功
2.在后臺(tái)控制臺(tái)輸入
輸入前需要添加rabbit的插件
后臺(tái)管理開(kāi)啟方法
rabbitmq-plugins enable rabbitmq_management
重啟rabbitmq服務(wù)生效
打開(kāi)http://localhost:15672/即可看到管理后臺(tái)
用戶名密碼均為guest
輸入http://127.0.0.1:15672進(jìn)入后臺(tái)
找到你自己的用戶
點(diǎn)擊名字
輸入框中內(nèi)容如圖所示即可。
ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'order-delay-queue' in vhost '/': received 'false' but current is 'true', class-id=50, method-id=10)
表示你order-delay-queue隊(duì)列麻献,已經(jīng)創(chuàng)建運(yùn)行嗦随,但是你告訴rabbit的是它沒(méi)有創(chuàng)建哥桥。原因在于‘
需要將此隊(duì)列刪除并且對(duì)應(yīng)代碼為
代碼rabbit官方文檔中有
2.延時(shí)隊(duì)列報(bào)錯(cuò)
ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message', class-id=40, method-id=10)
代表沒(méi)有找到對(duì)應(yīng)x-delayed-message的exchange type
rabbit官方github地址
說(shuō)明你要是用延時(shí)隊(duì)列需要啟用插件
首先在dos命令中輸入文檔中的命令顯示error(錯(cuò)誤信息為沒(méi)有發(fā)現(xiàn)對(duì)應(yīng)插件)則需要到rabbit官網(wǎng)下載插件
插件地址
找到這個(gè)插件
下載下來(lái)冰晶插件復(fù)制到rabbit-service的插件目錄(自己的安裝目錄)中
并且在dos命令中再次運(yùn)行
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
就可以了
3. error: unable to connect to node rabbit@: nodedown
rabbitmq版本過(guò)低問(wèn)題
當(dāng)前有些阿里云服務(wù)器阿里源對(duì)應(yīng)的rabbit的版本為3.5.X版本挺狰,但現(xiàn)在官網(wǎng)延遲插件對(duì)應(yīng)的最低版本為3.6.X
解決方案:
- 手動(dòng)安裝最新版(如果不想手動(dòng)則使用第二種)
- 添加源 echo 'deb http://www.rabbitmq.com/debian/ testing main' | tee /etc/apt/sources.list.d/rabbitmq.list 然后執(zhí)行 apt-get update 會(huì)安裝3.6.15的版本
4. # epmd reports: node 'rabbit' not running at all?
remove /var/log/rabbitmq/* and start it back