Linux centos7环境下安装RabbitMQ
安装步骤
下载erlang所需的一些rpm包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
此步骤可能需要先行安装wget: yum install wget
尝试安装
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm,可能会出现效果如下:
因为RabbitMQ是erlang语言写的,所以其需要epel-release环境,这个时候我们就需要执行yum install epel-release安装epel-release
安装erlang
yum install erlang, 此步骤跟很多因素有关,有时可能会下载失败,下载失败时反复执行此命令重复下载直到下载成功即可
下载RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
安装并启动RabbitMQ
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
以后步骤即将RabbitMQ安装成功了,然后我们需要将其作为服务启动起来
启动RabbitMQ:service rabbitmq-server start
查看运行状态:service rabbitmq-server status,如果出现如下界面,则代表启动成功
对于熟悉RabbitMQ管理命令的人来说,实际上到这一里也就完全安装好了。
==========================划重点 ==========================
一开始照着上述步骤是能够安装并且运行成功的,但是过了一段时间,发现安装过后启动RabbitMQ:service rabbitmq-server start会报下图的错误
这个真的是把我整吐了,可以执行下面的脚本之后再重新照着上述步骤再来一遍
/sbin/service rabbitmq-server stop
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarch
yum list | grep erlang
yum -y remove erlang-*
yum remove erlang.x86_64
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
yum remove epel-release
rm -rf /var/cache/yum/x86_64/6/epel/
遗憾的是,我自己是没有成功的,我猜测是epel的兼容性导致的,所以干脆上官网找安装教程,rabbitmq是基于erlang的,所以版本一定要对应,官网目前最新的是3.8的rabbitmq版本,然后需要与TOP 23对应。这里直接上安装教程
1.建一个文件
vi /etc/yum.repos.d/rabbitmq_erlang.repo
内容如下:
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
2.安装erlang
yum install erlang
3.下载rabbitmq rpm包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
4.安装rpm包
yum install rabbitmq-server-3.8.9-1.el7.noarch.rpm
但是RabbitMQ实际上以插件的形式提供了网页版的管理控制台,需要安装管理控制台的可以继续往下看
安装管理控制台插件
执行命令rabbitmq-plugins enable rabbitmq_management 如下图所示
重启RabbitMQ让其生效: service rabbitmq-server restart,想要在本机内部查看控制台是否成功,可以用浏览器访问localhost:15672,也可以用curl命令,我这里直接用curl命令来查看了。如图所示
可以看到应该是安装成功了,如果我们想在其他电脑上访问管理控制台,我们需要开放对应的端口,RabbitMQ一般会用到两个端口 15672 和 5672,执行下面两行命令将这两个端口开放
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
如果是用的虚拟机来安装RabbitMQ,还需要配置一下端口转发,在将怎么配置端口转发之前,我们先说明一下,管理控制台是有一个默认账号密码为guest的用户的,不做任何配置的前提下,此用户只能在本机进行登录,如果我们要远程登录管理系统,可以直接配置一个能够远程登录的账号,这里我先创建一个虚拟主机dengooo:
rabbitmqctl add_vhost dengooo
rabbitmqctl list_vhosts看到有一个默认虚拟主机 / 和我刚刚创建的虚拟主机dengooo
增加一个管理员用户
rabbitmqctl add_user root 123456
rabbitmqctl set_permissions -p dengooo root ‘.’ '.’ ‘.*’
rabbitmqctl set_user_tags root administrator
访问管理控制台
在开放了端口,配置了用户过后,如果是独立物理机的用户实际上就可以登录了,但是我这里是用的虚拟机,此虚拟机IP地址为192.168.0.100,我直接在windows浏览器中访192.168.0.100:15672还是访问不到的,这个就需要在虚拟机中配置端口转发了,直接见图
如果还需要在代码中进行访问,还需要对5672端口进行转发,配置完成后,重启虚拟机,再次启动RabbitMQ,然后访问192.168.0.100:15672
然后以刚才添加的用户 root 123456登录
大功告成!