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啟動的埠的話,應該就是你新配置的埠了。
有什麼其他問題的話,還希望你能留下評論,我們一塊解決。