簡介
RabbitMQ 是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件。RabbitMQ 服務(wù)器是用 Erlang 語言編寫的,所以下面要安裝 RabbitMQ 需要安裝 Erlang。
一、安裝 Erlang、Elixir
1.1 準(zhǔn)備
1、yum update
2、yum install epel-release
3、yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64
1.2 安裝 Erlang
1、wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
2、rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
3、yum update
4、yum install erlang
5、驗證是否安裝成功,輸入命令:erl
1)編譯&安裝完成以后配置Erlang環(huán)境變量:
[root@MiWiFi-R3-srv otp_src_19.3]# vim /etc/profile
#追加環(huán)境變量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
[root@MiWiFi-R3-srv otp_src_19.3]# source /etc/profile
2)運(yùn)行RabbitMQ需要首先開放15672和5672端口:
1、執(zhí)行firewall-cmd --permanent --zone=public --add-port=156/tcp,提示FirewallD is not running,如下圖所示。

2、通過systemctl status firewalld查看firewalld狀態(tài),發(fā)現(xiàn)當(dāng)前是dead狀態(tài),即防火墻未開啟。

3、通過systemctl start firewalld開啟防火墻,沒有任何提示即開啟成功。

4、再次通過systemctl status firewalld查看firewalld狀態(tài),顯示running即已開啟了。

5、如果要關(guān)閉防火墻設(shè)置,可能通過systemctl stop firewalld這條指令來關(guān)閉該功能。

6、再次執(zhí)行執(zhí)行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示設(shè)置成功,這樣就可以繼續(xù)后面的設(shè)置了。

[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --reload
1.3 安裝 Elixir
因為 EPEL 中的 Elixir 版本太老,所以下面是通過源碼編譯安裝的過程:
1、通過 git 下載 Elixir 源碼:git clone https://github.com/elixir-lang/elixir.git
2、進(jìn)到該目錄:cd elixir/
3、編譯:make clean test,編譯完成會看到:Finished in 5.7 seconds (3.3s on load, 2.3s on tests)
4、配置 Path:export PATH="$PATH:/path/elixir/bin"
5、驗證是否安裝成功,輸入命令:iex
二、安裝 RabbitMQ
1、wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm
2、rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
3、yum install rabbitmq-server-3.6.1-1.noarch.rpm
正常情況下RabbitMQ已經(jīng)安裝完成,最后測試一下:
[root@MiWiFi-R3-srv ~]# rabbitmq-plugins enable rabbitmq_management
[root@MiWiFi-R3-srv ~]# rabbitmq-server
至此已經(jīng)安裝完成,下面介紹啟動和自動開機(jī)啟動命令和配置
1、啟動:systemctl start rabbitmq-server? ? ?或? ? ?service rabbitmq-server start
2、開機(jī)自動啟動:systemctl enable rabbitmq-server? ?
3、查看 rabbitmq-server 狀態(tài):rabbitmqctl status
4、停止:service rabbitmq-server stop
或
1、# /sbin/service rabbitmq-server stop
2、# /sbin/service rabbitmq-server start
3、# rabbitmqctl status?
參考
Install RabbitMQ server in CentOS 7
http://www.aspyc.com/archives/466.html
https://www.linuxidc.com/Linux/2018-01/150600.htm
方案二:
CENTOS 7安裝配置RABBITMQ
一. 安裝erlang
1)下載erlang
[root@localhost src]# wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
2)安裝erlang
[root@localhost src]# rpm -ihv erlang-19.0.4-1.el7.centos.x86_64.rpm
二.安裝RabbitMQ
1)下載rabbitmq
[root@localhost src]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
2)導(dǎo)入key文件
[root@localhost src]# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
3)編譯&安裝完成以后配置Erlang環(huán)境變量:
[root@MiWiFi-R3-srv otp_src_19.3]# vim /etc/profile
#追加環(huán)境變量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
[root@MiWiFi-R3-srv otp_src_19.3]# source /etc/profile
4)運(yùn)行RabbitMQ需要首先開放15672和5672端口:
1、執(zhí)行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示FirewallD is not running,如下圖所示。

2、通過systemctl status firewalld查看firewalld狀態(tài),發(fā)現(xiàn)當(dāng)前是dead狀態(tài),即防火墻未開啟。

3、通過systemctl start firewalld開啟防火墻,沒有任何提示即開啟成功。

4、再次通過systemctl status firewalld查看firewalld狀態(tài),顯示running即已開啟了。

5、如果要關(guān)閉防火墻設(shè)置,可能通過systemctl stop firewalld這條指令來關(guān)閉該功能。

6、再次執(zhí)行執(zhí)行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示設(shè)置成功,這樣就可以繼續(xù)后面的設(shè)置了。

[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --reload
正常情況下RabbitMQ已經(jīng)安裝完成,最后測試一下:
[root@MiWiFi-R3-srv ~]# rabbitmq-plugins enable rabbitmq_management
[root@MiWiFi-R3-srv ~]# rabbitmq-server
5 )安裝rabbitmq
[root@localhost src]# yum install -y rabbitmq-server-3.6.6-1.el7.noarch.rpm
三.開啟可視化插件
[root@localhost src]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@localhost... failed.
*?Could not contact node rabbit@localhost.
Changes will take effect at broker restart.
*?Options:?--online?- fail?if?broker cannot be contacted.
?--offline?-?do?not try to contact broker.
(注意:上面出現(xiàn)報錯信息 Applying plugin configuration to rabbit@localhost… failed.
是因為沒有啟動rabbit服務(wù)也就是需要先開啟服務(wù):service rabbitmq-server start)
四.添加遠(yuǎn)程訪問用戶,并分配權(quán)限
[root@localhost src]# rabbitmqctl add_user yangcheng 123456
Error: unable to connect to node rabbit@localhost: nodedown
DIAGNOSTICS
===========
attempted to contact:?[rabbit@localhost]
rabbit@localhost:
?*?connected to epmd?(port?4369)?on localhost
?*?epmd reports: node?'rabbit'?not running at all
no other nodes on localhost
?*?suggestion: start the node
current node details:
- node name:?'rabbitmq-cli-16@localhost'
- home dir:?/var/lib/rabbitmq
- cookie hash: JchyWsght/ggnwo3tgnb5Q==
對于上述問題,官網(wǎng)有提到cookie不一致之類的問題,重啟服務(wù)即可解決。
[root@localhost src]# service rabbitmq-server restart
Restarting rabbitmq-server?(via systemctl):[?OK]
# 添加用戶
[root@localhost src]# rabbitmqctl add_user yangcheng 123456
Creating user?"yangcheng"
# 配置用戶組
[root@localhost src]# rabbitmqctl set_user_tags yangcheng administrator
Setting tags?for?user?"yangcheng"?to?[administrator]
# 分配權(quán)限
[root@localhost src]# rabbitmqctl set_permissions -p / yangcheng '.*' '.*' '.*'
Setting permissions?for?user?"yangcheng"?in?vhost?"/"