RabbitMQ的部署有很多坑,有时候项目要求搭建个MQ测试环境,没有经验的话会浪费很长时间。记录下来,以备不时之需。
目前RabbitMQ最新版本已经迭代到3.10.7,部署过程可能已有区别。本文仅供参考。
版本
RabbitMQ是Erlang语言编写的,所以在安装RabbitMQ之前,需要先安装Erlang.
其中RabbitMQ和Erlang版本必须要匹配,否则不能运行,具体参考RabbitMQ Erlang Version Requirements。
部分对照表如下:
| RabbitMQ | min Erlang | max Erlang | 
|---|---|---|
| 3.9.0~3.9.7 | 23.2 | 24 | 
| 3.8.16~3.8.23 | 23.2 | 24 | 
| 3.8.9~3.8.15 | 22.3 | 23 | 
| 3.8.4~3.8.8 | 21.3 | 23 | 
| 3.8.0~3.8.3 | 21.3 | 22 | 
| 3.7 | 19.3 | 20.3 | 
| 3.6.15 | 19.3 | 20.3 | 
| 3.6.11~3.6.14 | R16B03 | 20.1 | 
| 3.6.4~3.6.10 | R16B03 | 19.3 | 
| 3.6.0~3.6.3 | R16B03 | 18.3 | 
本文选择的版本是RabbitMQ 3.6.9, 对应Erlang 19.1,Linux版本是CentOS 7.7
安装Erlang
下载
手动下载
进入官网erlang.org,先点击右侧选择对应的Erlang版本,再点击下载源码
	
wget下载
一样的链接
| 1 | wget https://erlang.org/download/otp_src_19.1.tar.gz | 
总之官网下载很慢,建议找其它来源。
安装
解压
创建/usr/local/software目录,将otp_src_19.1.tar.gz解压到这个目录下
| 1 | tar zxvf otp_src_19.1.tar.gz | 
准备环境
安装Erlang编译所依赖的环境
| 1 | yum install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel | 

编译
创建/usr/local/erlang目录,作为Erlang编译目录。否则默认编译到/usr/local目录下,不方便
| 1 | mkdir -p /usr/local/erlang | 
编译Erlang,--prefix参数表示编译到/usr/local/erlang目录下,--without-javac表示不需要java编译器编译
| 1 | cd otp_src_19.1/ | 

安装
| 1 | make && make install | 

配置
配置Erlang环境变量,vim /etc/profile,加入
| 1 | export ERLANG_HOME=/usr/local/erlang | 
source /etc/profile使配置生效
创建软链
在/usr/local/bin/目录下创建软链,方便在任何地方调用
| 1 | ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl | 

任意位置测试,Erlang安装成功
| 1 | erl | 
退出(halt,中断)
| 1 | halt(). | 

安装RabbitMQ
下载
手动下载
1.进入官网rabbitmq,点击右下角More update

2.往下翻到3.6.9(或者自己需要的版本),点击GitHub,现在安装包都是交给GitHub托管

3.进入GitHub,往下翻,找到适配自己的系统的安装包。这里是rabbitmq-server-generic-unix-3.6.9.tar.xz,点击下载即可

wget下载
一样的链接
| 1 | wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_9/rabbitmq-server-generic-unix-3.6.9.tar.xz | 
安装
解压
同样解压到/usr/local/software目录
| 1 | tar xvf rabbitmq-server-generic-unix-3.6.9.tar.xz | 
配置
vim /etc/profile,配置环境变量
| 1 | export RABBITMQ_HOME=/usr/local/software/rabbitmq_server-3.6.9 | 
source /etc/profile使配置生效
开启界面管理
开启管理界面插件,便于web页面访问RabbitMQ
| 1 | ./sbin/rabbitmq-plugins enable rabbitmq_management | 

允许默认用户访问
此时启动后浏览器访问http://localhost:15672,guest/guest不能直接登录。
因为从3.3.0开始禁止guest用户从非localhost登录
vim ebin/rabbit.app,删除<<"guest">>,重启即可

启动/停止
后台启动
| 1 | ./sbin/rabbitmq-server -detached | 
停止
| 1 | 停止 | 
问题
服务无法启动
服务器重启后,用了数字主机名,mq就起不来。

原因
host解析失败。
解决
vi etc/rabbitmq/rabbitmq-env.conf
加上
| 1 | NODENAME=rabbit@localhost | 
页面无法访问
mq启动后,端口正常,页面http://ip:15672无法访问
解决
vi etc/rabbitmq/rabbitmq.config.example
加上一下配置,重启服务即可
| 1 | % -*- mode: erlang -*- | 


