RabbitMQ配置環境花費了好多時間,特記錄此筆記,方便下次部署安裝。筆記中將常見的安裝錯誤問題、解決辦法與安裝過程一同展示。 ...
前言
項目中某些場景考慮到高併發情況,調研後決定使用RabbitMQ,本來以為很簡單,沒想到配置環境花費了好多時間,按照網上的方法來,總是有其他問題需要繼續查找,特記錄此筆記,方便下次部署安裝。
本筆記只記錄安裝過程,不探討RabbitMQ技術。
準備
使用RabbitMQ,除了要安裝RabbitMQ外,還必須安裝Erlang,由於RabbitMQ使用Erlang語言編寫,所以必須先安裝Erlang語言運行環境。
1.Erlang下載:http://www.erlang.org/downloads
2.RabbitMQ下載:http://www.rabbitmq.com/
另外先提一下,Erlang和RabbitMQ安裝好需要添加到系統的環境變數中,因為這個花費了我一些時間。
Erlang安裝
1.安裝
下載完Erlang之後,打開安裝包後,一步步安裝完成,這裡沒什麼需要註意的地方。
2.設置環境變數
找到Erlang的安裝路徑打開到bin文件夾下,註意此路徑。‘
右鍵我的電腦,選擇屬性,找到高級系統設置,點開後選擇高級里的環境變數。
找到系統變數中的Path,點擊編輯
新建環境變數,添加路徑,可以直接複製打開的Erlang的bin路徑。
3.檢查Erlang是否安裝成功
打開cmd,輸入 erl 後回車,如果能顯示版本信息,表明安裝成功。
RabbitMQ安裝
1.解壓下載好的RabbitMQ
2.配置環境變數
找到RabbitMQ的安裝路徑打開到sbin文件夾下,註意此路徑。
同Erlang的環境變數添加,新建路徑,添加到系統變數的Path中
3.CMD中安裝、啟動服務
使RabbitMQ以Windows Service的方式在後臺運行,打開CMD,定位到RabbitMQ的sbin目錄下。
執行:
rabbitmq-service install rabbitmq-service enable rabbitmq-service start
註意,CMD需要管理員許可權,否則會報錯Unable to register service with service manager. Error: Access is denied.
執行完成後,顯示如下信息,表示RabbitMQ的服務端已經啟動起來了。
然後,可以用rabbitmqctl這個腳本查看和控制RabbitMQ服務端的狀態。
查看狀態:
rabbitmqctl status
此時查看一般會出現如下錯誤:
解決方法如下:
將C:\Users\XXXX\.erlang.cookie 文件拷貝到C:\Windows\System32\config\systemprofile替換掉.erlang.cookie文件。(XXXX為window賬戶)
重啟rabbitMQ服務:CMD中 先輸入 net stop RabbitMQ ,然後輸入 net start RabbitMQ
net stop RabbitMQ
net start RabbitMQ
此後,再次輸入
rabbitmqctl status
顯示如下信息,RabbitMQ至此已經正確安裝完畢。
用戶設置與web管理工具插件安裝
1.新建用戶
使用命令查看用戶:
rabbitmqctl list_users
RabbitMQ會為我們創建預設的用戶名guest和密碼guest,guest預設擁有RabbitMQ的所有許可權。
如果我們需要自己創建用戶,那麼需要執行類似於下麵的命令,設置密碼,並授予許可權,並將其設置為管理員。
1 rabbitmqctl add_user ading 123456 //創建用戶ading密碼為123456 2 rabbitmqctl set_permissions ading ".*" ".*" ".*" //賦予ading讀寫所有消息隊列的許可權 3 rabbitmqctl set_user_tags ading administrator //分配用戶組
另,修改用戶密碼和刪除用戶方法如下:
1 rabbitmqctl change_password ading 123 2 rabbitmqctl delete_user ading
2.安裝web管理工具插件
CMD中輸入:
rabbitmq-plugins enable rabbitmq_management
web管理工具的地址是:http://localhost:15672,初始用戶名:guest 初始密碼:guest
打開瀏覽器,輸入地址:http://127.0.0.1:15672/#/
總結
不懂的技術,如果配置部署麻煩,也請不要煩躁,因為他人都得經歷這些。你得知道,那麼多人推薦那麼多使用,總是有原因的,別因為一點麻煩就放棄一項好的技術。