前言
环境介绍:Centos 7
+ RabbitMQ:3.6.12
+ Erlang:20.0
安装erlang
由于RabbitMQ使用erlang语言编写的,所以要先安装erlang语言环境。但是yum源里的erlang版本太老了,于是这里选择手动安装,使用Erlang官方推荐的Erlang Solutions
安装方法如下:
1
2
3
4yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64 #先把其他模块准备好
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
此时,查看/etc/yum.repos.d/erlang_solutions.repo
,应该是这个样子:
1
2
3
4
5
6[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1
这个时候可以yum安装了:
1
yum install -y esl-erlang
此时得到的erlang就是20.0版本的了,如图:
如果不想使用这个办法,可以使用源码安装的方式,https://packages.erlang-solutions.com/erlang/ 这里面有Erlang官方的下载包,拆包解压缩然后make && make install
即可。
安装RabbitMQ
安装RabbitMQ跟其他普通软件差不多,先去官网下载目前较稳定的rpm包,然后安装,步骤如下:
1
2wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el7.noarch.rpm
yum install -y rabbitmq-server-3.7.4-1.el7.noarch.rpm
如果出现了Transaction Check Error
的错误:
可见是要安装的包与已有的包相冲突,此时需要yum list|grep erlang
,如图:
再yum remove esl-erlang.x86_64
,然后重新执行yum install那一步即可。
如果出现Requires: socat
的错误,如图:
此时需要执行如下命令即可:
1
2yum -y install epel-release
yum -y install socat
配置RabbitMQ
RabbitMQ安装完毕,先chkconfig rabbitmq-server on
设置开机启动。然后,配置一下用户名。我这个机器的用户名不规范,需要把hostname里的中文去掉,比如改成:3-dvl-hlsproxy-001
,那么就要在/etc/hosts里添加一句:
内网IP地址 3-dvl-hlsproxy-001
然后执行rabbitmq-plugins enable rabbitmq_management
来安装WEB图形界面,然后拷贝rabbitmq.config.example
到/etc/rabbitmq/
里,并且改名叫rabbitmq.config
,命令如下:
1
2
3cp /usr/share/doc/rabbitmq-server-3.7.4/rabbitmq.config.example /etc/rabbitmq/
cd /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config
编辑rabbitmq.config
这个文件,把%%{loopback_users, []}.
改成{loopback_users, []}
,保存之后,执行service rabbitmq-server restart
来启动RabbitMQ。
如果启动之后,执行rabbitmqctl status
不断的刷Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
的错误的话,执行chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
。
在浏览器里登录外网IP:15672
就会看到RabbitMQ的WEB配置界面了,
账号和密码都是guest,输入之后就会看到如下的界面,可以在界面里看到3-dvl-hlsproxy-001
的情况了,如图:
RabbitMQ 3.0以后版本的WEB端口是15672
,服务的端口是5672
,这俩都可以在配置文件里面更改。至此RabbitMQ的安装与配置结束了,但是这个仅仅是最简单的配置,RabbitMQ自身有一套很详细的用户管理规则以及它支持Python等很多语言的管理,这些内容以后再详细说明。
参考资料
https://packages.erlang-solutions.com/erlang/
https://laucyun.com/9849587ce75f31d534d52f906c94368f.html
https://www.rabbitmq.com/access-control.html