RabbitMQ 环境搭建
1 前置条件
RabbitMQ 由 Erlang 语言所编写,所以在安装 RabbitMQ 前需要安装 Erlang 。两者的版本兼容关系如下。本篇文章选用的 RabbitMQ 版本为 3.7.27 , Erlang 版本为 22.0 :
| RabbitMQ version | Minimum required Erlang/OTP | Maximum supported Erlang/OTP |
|---|---|---|
| 3.7.27 | 20.3.x | 22.0.x |
| 3.7.7 ~ 3.7.14 | 20.3.x | 21.3.x |
| 3.7.0 ~ 3.7.6 | 19.3 | 20.3.x |
表格来源:https://www.rabbitmq.com/which-erlang.html
官方安装文档:https://www.rabbitmq.com/install-rpm.html#downloads
系统版本:CentOS 7.X
提供两种安装方式,但是注意两者依赖要统一
2 Erlang 安装
参考链接:https://github.com/rabbitmq/erlang-rpm
2.1 添加 YUM 源
vim /etc/yum.repos.d/rabbitmq_erlang.repo
写入以下 保存退出
# In /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
2.2 安装
yum install -y erlang
2.3 验证安装结果
出现对应的版本号信息则代表安装成功:
[root@rabbit-node1 ~]# erl
Erlang/OTP 22 [erts-10.7.2.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Eshell V10.7.2.2 (abort with ^G)
3 RabbitMQ 安装
3.1 添加 YUM 源
创建源
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
编辑配置文件
vim /etc/yum.repos.d/rabbitmq.repo
写入以下 保存退出
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
3.2 安装
yum -y install rabbitmq-server
查看 RabbitMQ 安装目录
whereis rabbitmq
3.3 启动 RabbitMQ 服务
启动 RabbitMQ
systemctl start rabbitmq-server
其他命令
#停止RabbitMQ服务
systemctl stop rabbitmq-server
#查看RabbitMQ运行状态
systemctl status rabbitmq-server
#重启RabbitMQ服务
systemctl restart rabbitmq-server
3.4 查看服务状态
ps aux | grep rabbitmq
# 或者
service rabbitmq-server status
# 端口号
netstat -tunlp | grep 5672
3.5 设置开机自启动
chkconfig rabbitmq-server on
3.6 开启防火墙端口访问
开放防火墙端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
重启防火墙
systemctl restart firewalld.service
4 Web UI界面
4.1 启动 Web UI
想要使用 RabbitMQ 的 Web UI 界面,需要启动管理插件,命令如下:
rabbitmq-plugins enable rabbitmq_management
访问端口为 15672。默认的用户名和密码都是 guest 。如果你所用浏览器和 RabbitMQ 服务不在同一台主机上,此时应该无法登录,并出现下面的提示 :
之所以会出现这个提示,是因为出于安全考虑,RabbitMQ 只允许在本机使用默认的guest用户名登录。想要在其他主机上登录,需要使用自定义的账户。
4.2 新增账户
新增用户,用户名和密码都是 root :
rabbitmqctl add_user root root
赋予用户在默认的名为 / 的 Virtual Host 上的所有权限:
rabbitmqctl set_permissions -p / root '.*' '.*' '.*'
设置用户的角色为管理员:
rabbitmqctl set_user_tags root administrator
4.3 使用新账户登录
登录后可以查看到RabbitMQ 和 Erlang 的版本号,以及对应的账户信息:

5 Linux系统配置
解除linux系统最大进程数和最大文件打开数
echo "* - nofile 1048576" >> /etc/security/limits.conf
echo "fs.file-max = 1048576" >> /etc/sysctl.conf
修改完执行sysctl -p 生效.
6 开启延时队列
6.1 安装插件
https://www.rabbitmq.com/community-plugins.html 下载rabbitmq_delayed_message_exchange 注意mq版本
移动该文件到 /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.17/plugins/ 目录下
6.2 启用插件
执行命令启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
7 卸载 RabbitMQ
删除安装包
yum -y remove rabbitmq-server
删除所有 rabbitmq 目录
# 查看目录
whereis rabbitmq
# 删除
rm -rf /usr/lib/rabbitmq/
# 搜索相关文件
find / -name rabbitmq
# 删除
rm -rf /run/rabbitmq