RabbitMQ的使用(一)- RabbitMQ服務安裝


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,版本自行選擇,我這里用的是otp_win64_22.3.exe,下載完可執行文件雙擊運行安裝即可,這里不展開。

安裝RabbitMQ

官網下載https://www.rabbitmq.com/download.html,版本自行選擇,我這里用的是rabbitmq-server-3.8.3.exe,也是直接安裝即可,這里不展開

啟動RabbitMQ服務

打開cmd命令框,切換至C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.3\sbin目錄下,輸入rabbitmqctl status查看狀態,如果未啟動,則可以通過rabbitmq-service進行啟動,或者到Windows服務啟動

mq_01_status

mq_02_service

rabbitmq-service命令如下,按需執行:

# 安裝RabbitMQ服務
rabbitmq-service install
# 啟動RabbitMQ服務
rabbitmq-service start
# 停止RabbitMQ服務
rabbitmq-service stop
# 刪除RabbitMQ服務
rabbitmq-service remove

mq_03_rabbitmq-service

啟用RabbitMQ管理插件

#cmd命令
rabbitmq-plugins.bat enable rabbitmq_management

然后在瀏覽器訪問地址http://localhost:15672/,輸入默認用戶名和密碼,都是guest

mq_04_rabbitmqmanagement

可以看到剛剛已經安裝的RabbitMQ節點

一般我們都會先創建一個使用的user和virtual host,可以通過rabbitmqctl命令或者管理界面進行創建,我這里就直接在界面操作了。

mq_06_host

mq_05_user

分配user對我們將要用到的virtual host的權限

mq_07_user_host

到這里為止,就已經完成了RabbitMQ服務的安裝了。

自定義配置

RabbitMQ 服務默認監聽的端口為5672,管理插件默認監聽的端口為15672,那如果我們要更改這些端口,應該怎么做呢?

先貼出官網提供的文檔鏈接https://www.rabbitmq.com/configure.html

其實官網說得很詳細,我自己整理了一些我有用到的。

首先,RabbitMQ支持通過添加系統環境變量進行定制化配置。

RABBITMQ_NODE_PORT: 默認值為5672,RabbitMQ服務監聽端口

RABBITMQ_NODENAME: Windows系統下默認值為rabbit@%COMPUTERNAME%,RabbitMQ節點的名稱

RABBITMQ_SERVICENAME: 默認值為RabbitMQ,RabbitMQ服務名稱

添加/修改了系統環境變量后,需要重新安裝RabbitMQ服務才能生效,是重新安裝,不是重啟,使用rabbitmq-service命令

再來看看我們創建的RabbitMQ節點的一些信息

mq_08_node_details

這里就包含配置文件路徑,數據庫文件路徑,日志文件路徑,默認路徑都是在C:\Users\%UserName%\AppData\Roaming\RabbitMQ目錄下,也是可以通過環境變量進行個性化定制

RABBITMQ_CONFIG_FILE: 配置文件路徑,默認值為%APPDATA%\RabbitMQ\rabbitmq,官文也特別說明了,配置的時候是不帶文件后綴名的

RABBITMQ_ADVANCED_CONFIG_FILE: Advanced配置文件路徑,默認值為%APPDATA%\RabbitMQ\advanced,同上,不帶文件后綴名

RABBITMQ_MNESIA_DIR: 數據庫文件路徑,默認值為%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.pem
ssl_options.certfile             = /path/to/server_certificate.pem
ssl_options.keyfile              = /path/to/server_key.pem
ssl_options.verify               = verify_peer
ssl_options.fail_if_no_peer_cert = true

然后,為了兼容大家使用的舊版配置文件,新版RabbitMQ也仍然兼容rabbitmq.config配置,只是在安裝服務的時候會有輸出提示讓大家盡快升級到新版。
那么這個時候就會有一個問題了,上面我們的環境變量RABBITMQ_CONFIG_FILE是說不包含文件后綴名的,那如果我兩個文件同時存在,到底會是哪個配置文件被優先使用呢?

  • 如果rabbitmq.configrabbitmq.conf文件都不存在,優先使用advanced.config中的配置
  • 只要rabbitmq.config存在,優先使用rabbitmq.config文件,直接忽略advanced.config文件
  • 如果rabbitmq.config不存在,而rabbitmq.confadvanced.config同時存在,則這兩個文件都會被使用

如果我們指定RABBITMQ_CONFIG_FILE為其它文件名或者其它路徑,情況也是參考如上。

這里還有一個環境變量RABBITMQ_CONF_ENV_FILE,在Windows系統中對應的是一個批處理文件,通常命名為rabbitmq-env-conf.bat,只要我們配置了這個環境變量,那么剛剛前面我們提到的環境變量,都可以在這個批處理文件中添加,如下:

set RABBITMQ_CONFIG_FILE=D:\RabbitMQ\myrabbitmq.config

也是要注意的,記得重新安裝服務。

所以回到我們一開始的問題,怎么修改RabbitMQ服務監聽端口和管理插件監聽端口?

  1. 通過環境變量RABBITMQ_NODE_PORT可以修改RabbitMQ服務監聽端口
  2. 通過rabbitmq.configadvanced.config添加如下配置,使用Erlang格式:
[
  {rabbit, [
      {tcp_listeners, [5675]}
    ]
  },
  {rabbitmq_management, [
      {listener, [{port, 15675}]}
    ]
  }
].
  1. 通過rabbitmq.conf添加如下配置,使用sysctl格式:
    listeners.tcp.default = 5675
    management.tcp.port = 15675

更多的配置項,可以查看官文https://www.rabbitmq.com/configure.html#config-itemshttps://www.rabbitmq.com/management.html,按需配置即可。

附帶這三個文件的example文件
rabbitmq.config.example
rabbitmq.conf.example
advanced.config

總結

本文就記錄了我在windows系統安裝RabbitMQ服務的過程,沒有太多的干貨,但也確實在百度上能找到關於自定義配置的說明並不多,說得也比較模糊,所以我這里就給自己做了個筆記,下次再用的時候就不會迷路了,希望也能給各位提供一些有用信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM