1、前景
RabbitMQ是用Erlang编写的,所以需要先安装Erlang的编译环境
注意
Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动
点击查看版本关联信息
Erlang
RabbitMQ
2、安装Erlang
代码语言:shell复制# 下载
wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_23.3.1-1~centos~7_amd64.rpm
# 安装
yum install esl-erlang_23.3.1-1~centos~7_amd64.rpm
# 如果有更高的版本需要覆盖安装使用这条
rpm -ivh esl-erlang_23.3.1-1~centos~7_amd64.rpm --replacefiles
2.1、检查是否安装成功
代码语言:shell复制erl -version
3、安装RabbitMQ
代码语言:shell复制# 安装RabbitMQ密钥
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# 下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm
# 安装
yum install rabbitmq-server-3.8.14-1.el7.noarch.rpm
# 配置Web页面
rabbitmq-plugins enable rabbitmq_management
3.1、配置文件差异
注意1
RabbitMQ版本3.8以上的需要把该文件放在/etc/rabbitmq目录下
注意2
RabbitMQ版本3.8以下的配置文件目录在:/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.9/ebin/rabbit.app
下载配置
提取码: ribv
3.2、配置开机启动
代码语言:shell复制systemctl enable rabbitmq-server.service
4、开放端口
代码语言:shell复制/sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
5、启动RabbitMQ
代码语言:shell复制# 启动(二选一)
systemctl start rabbitmq-server.service
# 启动(二选一)
/sbin/service rabbitmq-server start
# 查看启动状态
systemctl status rabbitmq-server.service
6、新增用户
代码语言:shell复制# 新增用户 username为用户名 passwd为密码
rabbitmqctl add_user username passwd
# 设置超管权限
rabbitmqctl set_user_tags username administrator
# 为username设置权限
rabbitmqctl set_permissions -p "/" username ".*" ".*" ".*"
# 设置完重启服务
systemctl restart rabbitmq-server.service
7、疑难解决
6.1、报错1
代码语言:shell复制rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
6.1.1、解决:
代码语言:text复制/var/lib/rabbitmq/mnesia 目录下存在rabbit@localhost.pid、rabbit@localhost、rabbit@localhost-plugins-expand,删除这3项
6.2、报错2
代码语言:shell复制file /usr/bin/epmd from install of esl-erlang-25.0.3-1.x86_64 conflicts with file from package erlang-erts-24.3.4.1-1.el7.x86_64
6.1.1、解决:
代码语言:text复制该提示为Erlang和RabbitMQ版本不匹配导致