RabbitMq安裝配置問題


引用:https://www.jianshu.com/p/2ecad37d64ff

1. 權限問題

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

這種問題用戶沒有權限需要 添加權限
添加權限有兩種

*在dos命令中設置
rabbitmqctl set_permissions -p / guest '.* ' ' .* ' '.*'

顯示Setting permissions for user "guest" in vhost "/" 表明設置權限成功
*在后台控制台輸入
輸入前需要添加rabbit的插件
后台管理開啟方法

rabbitmq-plugins enable rabbitmq_management
重啟rabbitmq服務生效
打開http://localhost:15672/即可看到管理后台
用戶名密碼均為guest
輸入http://127.0.0.1:15672進入后台

找到你自己的用戶
點擊名字

輸入框中內容如圖所示即可。
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隊列,已經創建運行,但是你告訴rabbit的是它沒有創建。原因在於‘

需要將此隊列刪除並且對應代碼為

代碼rabbit官方文檔中有

2.延時隊列報錯

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)

代表沒有找到對應x-delayed-message的exchange type
rabbitmq_delayed_message_exchange插件
插件下載地址:
http://www.rabbitmq.com/community-plugins.html
打開網址后,ctrl + f,搜索rabbitmq_delayed_message_exchange。

千萬記住,一定選好版本號,由於我使用的是RabbitMQ 3.7.4,因此對應的rabbitmq_delayed_message_exchange插件也必須選擇3.7.x的。
如果沒有選對版本,在使用延遲消息的時候,會遇到各種各樣的奇葩問題,而且網上還找不到解決方案。我因為這個問題,折騰了整整一個晚上。請牢記,要選對插件版本。

下載完插件后,將其放置到RabbitMQ安裝目錄下的plugins目錄下,並使用如下命令啟動這個插件:

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

如果啟動成功會出現如下信息:

The following plugins have been enabled: rabbitmq_delayed_message_exchange

啟動插件成功后,記得重啟一下RabbitMQ,讓其生效。

3. error: unable to connect to node rabbit@: nodedown

rabbitmq版本過低問題
當前有些阿里雲服務器阿里源對應的rabbit的版本為3.5.X版本,但現在官網延遲插件對應的最低版本為3.6.X
解決方案:

手動安裝最新版(如果不想手動則使用第二種)
添加源 echo 'deb http://www.rabbitmq.com/debian/ testing main' | tee /etc/apt/sources.list.d/rabbitmq.list
然后執行 apt-get update 會安裝3.6.15的版本

4. # epmd reports: node 'rabbit' not running at all?

remove /var/log/rabbitmq/* and start it back


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM