RabbitMQ Linux部署

RabbitMQ 环境搭建

1 前置条件

RabbitMQ 由 Erlang 语言所编写,所以在安装 RabbitMQ 前需要安装 Erlang 。两者的版本兼容关系如下。本篇文章选用的 RabbitMQ 版本为 3.7.27 , Erlang 版本为 22.0 :

RabbitMQ versionMinimum required Erlang/OTPMaximum supported Erlang/OTP
3.7.2720.3.x22.0.x
3.7.7 ~ 3.7.1420.3.x21.3.x
3.7.0 ~ 3.7.619.320.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 服务不在同一台主机上,此时应该无法登录,并出现下面的提示 :

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDfgDavg-1597119251290)(https://camo.githubusercontent.com/bbf13710b15f74c3c239cb42f9ef2ac98bebc81f/68747470733a2f2f67697465652e636f6d2f68656962616979696e672f46756c6c2d537461636b2d4e6f7465732f7261772f6d61737465722f70696374757265732f5261626269744d512de8aebfe997aee99990e588b62e706e67)]

之所以会出现这个提示,是因为出于安全考虑,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 的版本号,以及对应的账户信息:

微信截图_20200808181159.png

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

版权声明:本文为qq_28533563原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。