erlang安装_RabbitMQ的使用(一)- RabbitMQ服务安装
作者:markjiang7m2博客園地址:https://www.cnblogs.com/markjiang7m2/p/12769627.html官網地址:http://letyouknow.net
RabbitMQ,消息隊列的一個中間件,這里不打算展開介紹了。此文意在記錄工作中使用RabbitMQ時的過程及一些心得,大神可忽略。如有表述有誤,各路大神可在留言區進行指正,不勝感謝。
Windows系統中安裝RabbitMQ服務
安裝Erlang運行環境
RabbitMQ是采用Erlang實現的,所以需要安裝Erlang的運行環境。
安裝Erlang OTP,官網下載https://www.erlang.org/downloads,版本自行選擇,我這里用的是otpwin6422.3.exe,下載完可執行文件雙擊運行安裝即可,這里不展開。
安裝RabbitMQ
官網下載https://www.rabbitmq.com/download.html,版本自行選擇,我這里用的是rabbitmq-server-3.8.3.exe,也是直接安裝即可,這里不展開
啟動RabbitMQ服務
打開cmd命令框,切換至C:Program FilesRabbitMQ Serverabbitmq_server-3.8.3sbin目錄下,輸入rabbitmqctl status查看狀態,如果未啟動,則可以通過rabbitmq-service進行啟動,或者到Windows服務啟動
rabbitmq-service命令如下,按需執行:
# 安裝RabbitMQ服務rabbitmq-service install# 啟動RabbitMQ服務rabbitmq-service start# 停止RabbitMQ服務rabbitmq-service stop# 刪除RabbitMQ服務rabbitmq-service remove啟用RabbitMQ管理插件
#cmd命令rabbitmq-plugins.bat enable rabbitmq_management然后在瀏覽器訪問地址http://localhost:15672/,輸入默認用戶名和密碼,都是guest
可以看到剛剛已經安裝的RabbitMQ節點
一般我們都會先創建一個使用的user和virtual host,可以通過rabbitmqctl命令或者管理界面進行創建,我這里就直接在界面操作了。
分配user對我們將要用到的virtual host的權限
到這里為止,就已經完成了RabbitMQ服務的安裝了。
自定義配置
RabbitMQ 服務默認監聽的端口為 5672,管理插件默認監聽的端口為 15672,那如果我們要更改這些端口,應該怎么做呢?
先貼出官網提供的文檔鏈接https://www.rabbitmq.com/configure.html
其實官網說得很詳細,我自己整理了一些我有用到的。
首先,RabbitMQ支持通過添加系統環境變量進行定制化配置。
RABBITMQNODEPORT: 默認值為 5672,RabbitMQ服務監聽端口
RABBITMQ_NODENAME: Windows系統下默認值為 rabbit@%COMPUTERNAME%,RabbitMQ節點的名稱
RABBITMQ_SERVICENAME: 默認值為 RabbitMQ,RabbitMQ服務名稱
添加/修改了系統環境變量后,需要重新安裝RabbitMQ服務才能生效,是重新安裝,不是重啟,使用rabbitmq-service命令
再來看看我們創建的RabbitMQ節點的一些信息
這里就包含配置文件路徑,數據庫文件路徑,日志文件路徑,默認路徑都是在 C:甥敳獲%UserName%AppDataRoamingRabbitMQ目錄下,也是可以通過環境變量進行個性化定制
RABBITMQCONFIGFILE: 配置文件路徑,默認值為%APPDATA%RabbitMQabbitmq,官文也特別說明了,配置的時候是不帶文件后綴名的
RABBITMQADVANCEDCONFIG_FILE: Advanced配置文件路徑,默認值為%APPDATA%RabbitMQadvanced,同上,不帶文件后綴名
RABBITMQMNESIADIR: 數據庫文件路徑,默認值為%APPDATA%RabbitMQ$RABBITMQ_NODENAME
到了這里,我在做實際操作的時候是有疑問的,因為出現了三個文件分別是 rabbitmq.conf, rabbitmq.config, advanced.config,特別是前面兩個,一開始我一度認為只是官文不小心寫錯了,它們說的應該是同一個文件,然而并不是,而且這兩個配置文件的寫法也不一樣,我又仔細看了看上面鏈接的官文,自己也做了一下實驗,得到了下面的結論(如果有不對的,各路大神請指正)。
rabbitmq.config為RabbitMQ 3.7.0之前使用的默認配置文件,寫法使用的是Erlang格式, rabbitmq.conf是RabbitMQ 3.7.0版本開始使用的默認配置文件,寫法使用的是sysctl格式。而 advanced.config則是因為有一些配置無法或者很難用sysctl格式進行書寫的,那就寫在這個 advanced.config文件中,所以 advanced.config的寫法使用的是Erlang格式。
舊版Erlang格式
[ {rabbit, [{ssl_options, [{cacertfile, "/path/to/ca_certificate.pem"}, {certfile, "/path/to/server_certificate.pem"}, {keyfile, "/path/to/server_key.pem"}, {verify, verify_peer}, {fail_if_no_peer_cert, true}]}]}].新版sysctl格式
ssl_options.cacertfile = /path/to/ca_certificate.pemssl_options.certfile = /path/to/server_certificate.pemssl_options.keyfile = /path/to/server_key.pemssl_options.verify = verify_peerssl_options.fail_if_no_peer_cert = true然后,為了兼容大家使用的舊版配置文件,新版RabbitMQ也仍然兼容 rabbitmq.config配置,只是在安裝服務的時候會有輸出提示讓大家盡快升級到新版。那么這個時候就會有一個問題了,上面我們的環境變量 RABBITMQ_CONFIG_FILE是說不包含文件后綴名的,那如果我兩個文件同時存在,到底會是哪個配置文件被優先使用呢?
- 如果 rabbitmq.config、 rabbitmq.conf文件都不存在,優先使用 advanced.config中的配置
- 只要 rabbitmq.config存在,優先使用 rabbitmq.config文件,直接忽略 advanced.config文件
- 如果 rabbitmq.config不存在,而 rabbitmq.conf、 advanced.config同時存在,則這兩個文件都會被使用
如果我們指定 RABBITMQ_CONFIG_FILE為其它文件名或者其它路徑,情況也是參考如上。
這里還有一個環境變量 RABBITMQ_CONF_ENV_FILE,在Windows系統中對應的是一個批處理文件,通常命名為 rabbitmq-env-conf.bat,只要我們配置了這個環境變量,那么剛剛前面我們提到的環境變量,都可以在這個批處理文件中添加,如下:
set RABBITMQ_CONFIG_FILE=D:RabbitMQmyrabbitmq.config也是要注意的,記得重新安裝服務。
所以回到我們一開始的問題,怎么修改RabbitMQ服務監聽端口和管理插件監聽端口?
更多的配置項,可以查看官文https://www.rabbitmq.com/configure.html#config-items、https://www.rabbitmq.com/management.html,按需配置即可。
附帶這三個文件的example文件rabbitmq.config.examplerabbitmq.conf.exampleadvanced.config
總結
本文就記錄了我在windows系統安裝RabbitMQ服務的過程,沒有太多的干貨,但也確實在百度上能找到關于自定義配置的說明并不多,說得也比較模糊,所以我這里就給自己做了個筆記,下次再用的時候就不會迷路了,希望也能給各位提供一些有用信息。
總結
以上是生活随笔為你收集整理的erlang安装_RabbitMQ的使用(一)- RabbitMQ服务安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux sed 循环多行,linux
- 下一篇: Xshell6突然连不上K8S所在的虚拟