一、服務器安裝中間件
此處使用的是CentOS 7系統。
1、安裝Erlang運行環境
下載安裝包:
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
安裝相關的依賴(不安裝依賴而直接安裝erlang的話會報錯依賴檢測失敗):
yum install epel-release
安裝命令如下:
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm yum install erlang
使用erl命令查看erlang是否安裝成功:
erl
2、安裝Rabbitmq
在以下地址中下載rpm包(erlang環境和rabbitmq的版本間有對應關係):
根據erlang環境版本24去找它可支持的rabbitmq版本:
https://www.rabbitmq.com/which-erlang.html#erlang-repositories
在以下地址下載可用的rabbitmq版本:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.14
因爲系統是用的centos7,所以選後綴爲el7的,這個是rpm包對應的系統版本。
如果用centos8的話就要選el8後綴的,這個rpm包在不同版本系統中不通用。
把rpm包放到linux服務器上,執行以下命令:
yum install rabbitmq-server-3.9.14-1.el7.noarch.rpm
二、修改配置
1、開啓遠程訪問
使用vi命令修改/etc/rabbitmq/rabbitmq.config配置文件,首次打開應該是空的,在裏面添加以下內容:
[{rabbit,[{loopback_users,[]}]}].
注意後面有個點。
2、開啓web端(開啓遠程訪問的前提下才可用)
rabbitmq-plugins enable rabbitmq_management
注:開啓時如果報錯Applying plugin configuration to rabbit@iZ2ze1itscfjc7r0ogmvugZ... failed.,可能是安裝的rabbitmq版本和erlang環境不匹配導致。
三、安裝插件
1、消息延遲插件
下載地址如下,根據顯示的對應關係,下載對應的插件版本。
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
進入到目錄/usr/lib/rabbitmq/lib/rabbitmq_server-3.9.14/plugins/中,將rabbitmq_delayed_message_exchange-3.9.0.ez放置到該文件夾下。
使用以下命令進行啓動:
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
四、啓動Rabbitmq
1、啓動
service rabbitmq-server start
2、關閉
service rabbitmq-server stop
3、重啓
service rabbitmq-server restart
4、查看狀態
service rabbitmq-server status
五、開啓端口
防火牆裏端口開啓5672和15672兩個端口,此處省略,如果是雲服務器記得在控制檯配置安全組規則。
六、訪問web管理端
使用服務器ip:15672端口進行訪問,頁面如下:
默認管理員賬號爲用戶名:guest,密碼與用戶名相同。
登錄成功後頁面如下:
七、用戶權限
1、創建測試用戶
執行以下命令:
rabbitmqctl add_user 用戶名 密碼
rabbitmqctl set_user_tags 用戶名 administrator
add_user後面使用用戶名和密碼創建用戶,set_user_tags用來給用戶授權”administrator”管理員權限。
此處設置一個用戶用戶名和密碼都爲test:
在web管理端可以看到:
權限的劃分有:
administrator:超級管理員,可以進入控制檯、查看信息(全部)、操作用戶、操作策略; monitoring:監控人員,可以進入控制檯、查看信息(節點相關-進程數、內存、磁盤等使用情況); policymaker:策略人員,可以進入控制檯、操作策略; management:普通管理員,可以進入控制檯; none:生產者或者消費者。
2、創建虛擬主機
在admin頁面的Virtual Hosts裏新增一個虛擬主機,命名爲test:
添加好主機後,點擊虛擬主機的名稱test,進入信息修改頁面:
這樣新增的test虛擬主機就專屬於test用戶了。