好長時間沒有寫東西了,記一個安裝筆記吧。
目前市面上比較常用的幾個消息中間件,rabbitmq算是風評比較好的,所以就拿來安裝一下玩玩嘍(很有可能也僅限於是安裝一下。。。。)安裝過程不表,無非是下載Erlang和RabbitMQ然后就是windows下的無腦裝了。不過,這里需要注意下,最好這兩個軟件都不要安裝在默認的program files的文件夾下(無論有沒有帶x86)應為那個萬惡的空格,很容易會出莫名其妙的問題。然后就是安裝完成啟動,愉快的玩耍了,如果你真的可以愉快的玩耍了,估計也不會搜這個問題了。。。。
按照安裝手冊安裝完成后,一般來說,rabbitmq會以windows 服務的形式運行,然后使用相關命令行可以操作。但是,在我安裝完成之后,始終無法啟動成功,使用rabbitmqctl.bat這個查看狀態回報如下錯誤:
{"init terminating in do_boot",{badarg,[{io,format,[<0.53.0>,"~n~nBOOT FAILED~n===========~n~nError description:~n ~p~n~nLog files (may contain more information):~n ~s~n ~s~n~n",[{could_not_start,rabbit,{badarg,[{io,format,[<0.135.0>,"~n ~s ~s. ~s~n ## ## ~s~n ## ##~n ########## Logs: ~s~n ###### ## ~s~n ##########~n Starting broker...~n",["RabbitMQ","3.6.6","Copyright (C) 2007-2016 Pivotal Software, Inc.","Licensed under the MPL. See http://www.rabbitmq.com/",[67,58,47,85,115,101,114,115,47,27494,24198,36229,47,65,112,112,68,97,116,97,47,82,111,97,109,105,110,103,47,82,97,98,98,105,116,77,81,47,108,111,103,47,82,65,66,66,73,84,126,49,46,76,79,71],[67,58,47,85,115,101,114,115,47,27494,24198,36229,47,65,112,112,68,97,116,97,47,82,111,97,109,105,110,103,47,82,97,98,98,105,116,77,81,47,108,111,103,47,82,65,66,66,73,84,126,50,46,76,79,71]]],[]},{rabbit,start,2,[{file,"src/rabbit.erl"},{line,683}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,273}]}]}},[67,58,47,85,115,101,114,115,47,27494,24198,36229,47,65,112,112,68,97,116,97,47,82,111,97,109,105,110,103,47,82,97,98,98,105,116,77,81,47,108,111,103,47,82,65,66,66,73,84,126,49,46,76,79,71],[67,58,47,85,115,101,114,115,47,27494,24198,36229,47,65,112,112,68,97,116,97,47,82,111,97,109,105,110,103,47,82,97,98,98,105,116,77,81,47,108,111,103,47,82,65,66,66,73,84,126,50,46,76,79,71]]],[]},{rabbit,log_boot_error_and_exit,3,[{file,"src/rabbit.erl"},{line,742}]},{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,407}]},{init,start_em,1,[{file,"init.erl"},{line,1076}]},{init,do_boot,3,[{file,"init.erl"},{line,784}]}]}}
大差不差就這些東西,網上多個方法都是說安裝路徑不能有non-ASCII字符,但是我在確定了安裝路徑上確實沒有亂七八糟的字符后,懷疑是RabbitMQ在啟動時可能會使用到文件路徑有non-ASCII字符。果不其然,通過官方文檔查看,如果沒有設置環境變量,Rabbitmq會使用一些默認的環境變量。在這個默認路徑里面,我的電腦里面的路徑有中文,所以沒有成功啟動。可以通過設置RABBITMQ_BASE這個變量來改變文件存放路徑。
我們可以在rabbitmq-env.bat這個文件里面看到有注釋顯示了RABBITMQ_BASE不能含有non-ASCII字符:
REM Make sure $RABBITMQ_BASE contains no non-ASCII characters. if not exist "!RABBITMQ_BASE!" ( mkdir "!RABBITMQ_BASE!" )
所以,搞IT的,文件路徑全英文很重要啊。