RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。

rabbitmq 部署有三种模式:单机模式,普通集群模式,镜像集群模式。

安装 Erlang 环境

首先查看本地操作系统版本:

1
2
3
4
5
$ cat /etc/redhat-release 
Rocky Linux release 8.8 (Green Obsidian)

$ uname -a
Linux bogon 4.18.0-425.3.1.el8.x86_64 #1 SMP Wed Nov 9 20:13:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang 环境。

我们准备安装 rabbitmq 3.11.23,根据 RabbitMQ 对 Erlang 版本要求,则需要提前安装 Erlang 25.3.x 版本的语言环境。

采用 Erlang Direct Downloads from GitHub RPM 的方式来安装 Erlang 语言环境,获取 Erlang RPM

1
2
3
cd /usr/local/src/
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2.7/erlang-25.3.2.7-1.el8.x86_64.rpm
dnf localinstall -y erlang-25.3.2.7-1.el8.x86_64.rpm

安装 rabbitmq

获取 rabbitmq RPM

1
2
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.23/rabbitmq-server-3.11.23-1.el8.noarch.rpm
dnf localinstall -y rabbitmq-server-3.11.23-1.el8.noarch.rpm

该方式安装的 RabbitMQ 是没有配置文件的,如需要配置文件,需手动进行配置,文件置于自己 Rabbitmq 安装路径下的 /etc/rabbitmq/rabbitmq.conf 即可,再管理页面或者日志中都可以查看到路径位置

启动服务:

1
2
3
4
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl stop rabbitmq-server

开启 web 管理界面

1
2
3
rabbitmq-plugins enable rabbitmq_management

systemctl restart rabbitmq-server

RabbitMQ 默认的账号用户名和密码都是 guest,默认情况下只能在 localhost本机下访问。

因此需要新增一个远程登录用户:

1
2
3
4
5
6
7
8
# 创建用户
rabbitmqctl add_user admin 123456

# 设置为管理员权限
rabbitmqctl set_user_tags admin administrator

# 赋予新创建的用户所有权限(可选)
rabbitmqctl set_permissions -p / <用户名> ".*" ".*" ".*"

浏览器访问 http://<IP>:15672 登录 Web 后台。

delayed_message_exchange 延时队列插件(可选)

rabbitmq-delayed-message-exchange 向 RabbitMQ 添加延迟消息传递(或计划消息传递)的插件,官方社区插件 community-plugins 可以看到插件的详细信息。

注意1: 插件对 rabbitmq 版本是有要求的:

1
2
3
# 查看本地 rabbitmq 版本
$ rpm -qa|grep rabbit
rabbitmq-server-3.11.23-1.el8.noarch

rabbitmq-delayed-message-exchange Release

因此我们选择插件版本 v3.11.1,来适配 rabbitmq 3.11.x 所有版本。

注意2: rabbitMQ 中必须是 Disc (磁盘型) 类型的节点才可以安装延时队列插件, RAM(内存型)类型节点无法安装。

查看本地插件路径是 /usr/lib/rabbitmq/lib/rabbitmq_server-3.11.23

1
2
3
4
$ rabbitmq-plugins directories -s
Plugin archives directory: /usr/lib/rabbitmq/plugins:/usr/lib/rabbitmq/lib/rabbitmq_server-3.11.23/plugins
Plugin expansion directory: /var/lib/rabbitmq/mnesia/rabbit@rabbit1-plugins-expand
Enabled plugins file: /etc/rabbitmq/enabled_plugins

切换插件归档目录,下载插件:

1
2
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.11.23/plugins
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.11.1/rabbitmq_delayed_message_exchange-3.11.1.ez

启用插件:

1
2
3
4
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

# 查看已启用的插件:
rabbitmq-plugins list

登录 Web 后台,如果exchange的类型中出现:x-delayed-message,说明该插件安装成功!

参考文档