1. 程式人生 > >win10 下的erlang + rabbitmq 安裝,以及遇到的問題

win10 下的erlang + rabbitmq 安裝,以及遇到的問題

rabbitMq和activemq不同,它不是專為Jave設計的,所以java中要用它需要配置erlang環境。

Erlang/OTP versions older than 19.3 and newer than 20.3.x (including 21.0) are not supported,意思是erlang的19.3(8.3)-20.3(9.3)支援rabbitmq,其他版本不支援。

第一步:

首先安裝otp_win64_19.3.exe(我這個是19.3的,20.0和20.1的也裝過),

安裝成功之後看一下環境變數ERLANG_HOME是否自動生成,沒有的話把他加上,

然後在PATH裡邊配置一下,然後去cmd任一目錄執行一下erl。

成功地話會是這樣。如果報錯,不是內部或外部命令,那就檢查一下環境變數,然後重啟命令列(改完環境變數一定要重啟命令列)。一般erl安裝都比較簡單。

第二步:

安裝rabbitmq-server-3.7.6.exe。安裝目錄要沒有中文、沒有空格而且儘量淺一點(否則會報奇葩錯誤,比如我的目錄稍微深了一下,執行命令就報錯:此時不該有xxx,然後浪費了好長時間)。

1.安裝完成之後去rabbitmq的sbin目錄下cmd,然後執行rabbitmq-plugins enable rabbitmq_management

意思是啟用rabbitmq_management這個外掛,外掛在sbin同級目錄的plugins中。

成功如圖:(失敗的話請往後看)

2.rabbitmq-plugins enable rabbitmq_stomp(成功介面類似上邊)

啟用rabbitmq_stomp外掛,https://blog.csdn.net/linshi100q/article/details/52822575這個網址是我找的對這個外掛的理解,想了解的可以看一下。

3.http://127.0.0.1:15672  訪問這個地址,是rabbitmq的管理中心,(啟用了management外掛之後就能用了)

已有賬戶是guest,密碼同名

介面是這樣。

4.此外,還想重新建一個使用者的話,命令如下

 /** 在rabbitmq的sbin目錄下,逐行執行
 rabbitmqctl add_user test test           (add一個test賬戶,密碼test)
 rabbitmqctl set_user_tags test administrator (設定為administrator)
 rabbitmqctl set_permissions -p / test ".*" ".*" ".*" 

再說一下安裝過程中出現的錯誤:

主要是在執行rabbitmq-plugins enable rabbitmq_management的時候報錯

Distribution failed: 
{{:shutdown, {:failed_to_start_child, :net_kernel, 
{:EXIT, :nodistribution}}}, 
{:child, :undefined, :net_sup_dynamic, 
{:erl_distribution, :start_link, [[:rabbitmqcli28, :shortnames], false]}, :permanent, 1000, :supervisor, [:erl_distribution]}}

這時候去看服務裡邊的RabbitMQ服務,點選啟動,然後顯示已啟動,重新整理一下 就會顯示未啟動(實際沒有啟動成功),

然後在命令列sbin目錄下執行以下rabbitmq-service start會報如下錯誤

ERROR: epmd error for host 
Please check your configuration: nxdomain (non-existing domain)

根據這個error可以看到,我安裝錯誤的原意是host名字的問題,nxdomain域名不存在

這時候cmd下執行hostname,看一下自己的主機名,包含漢字,然後改成沒有漢字的之後問題解決。

改主機名:計算機>屬性>計算機名、域和工作組設定這裡的 更改設定>更改  就可以了

因為我們去看上邊rabbitmq-plugins enable rabbitmq_management執行成功地圖片可以看到:

Enabling plugins on node [email protected]

這一行,@後邊的是我的主機名。

 

附上修改RabbitMQ服務埠的方法:

預設埠是5672,若是需要修改的話,可進行如下操作:

rabbit目錄底下和sbin目錄同級的有一個etc,etc下邊有rabbitmq.config.example這個是配置檔案的樣例。複製一個貼上到etc下邊(就是同一個目錄下),改名為rabbitmq.config。

文字編輯器開啟他,找到%%{tcp_listeners, [5672]},這一行,大概是在第19行左右。

去掉%%,然後把埠改成你想要的。然後去下邊找到%%{heartbeat, 60}大概在201行,這個是心跳,去掉百分號和後邊的逗號(因為配置之間用逗號隔開,但是會最後一條後邊不加逗號)

配置檔案的其他項在這就不展開解釋了(因為我不懂)。

改好這兩條之後,儲存一下,然後去配一個環境變數RABBITMQ_CONFIG_FILE,值寫到 你的目錄\etc\rabbitmq為止。

然後用管理員身份執行cmd,去到rabbitmq的sbin下 執行rabbitmq-service stop(停止服務),然後rabbit-service install(更新一下服務,因為我們剛改了配置檔案),最後rabbit-service start(啟動服務),此時你再去檢視rabbitmq啟動的埠的話,應該就是你新配置的埠了。

有什麼其他問題的話,還希望你能留下評論,我們一塊解決。