前言

RabbitMQ 是一个流行的开源消息代理软件,但其原生功能并不支持延迟队列。通过安装 rabbitmq_delayed_message_exchange 插件,我们可以实现消息的延迟发送功能。本文将介绍如何在 Mac 系统上安装并配置此插件。

环境说明

本教程基于通过 Homebrew 安装的 RabbitMQ。如果尚未安装 Homebrew,请先完成安装。

第一步:查看 RabbitMQ 版本

首先需要确认当前安装的 RabbitMQ 版本,因为插件版本必须与 RabbitMQ 主版本匹配。

1
brew info rabbitmq

输出示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
==> rabbitmq: stable 4.0.7 (bottled)
Messaging and streaming broker
https://www.rabbitmq.com
Installed
/opt/homebrew/Cellar/rabbitmq/4.0.7 (1,526 files, 23.4MB) *
Poured from bottle using the formulae.brew.sh API on 2025-03-28 at 11:06:44
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/r/rabbitmq.rb
License: MPL-2.0
==> Dependencies
Required: erlang ✔
==> Caveats
Management UI: http://localhost:15672
Homebrew-specific docs: https://rabbitmq.com/install-homebrew.html

To restart rabbitmq after an upgrade:
brew services restart rabbitmq
Or, if you don't want/need a background service you can just run:
CONF_ENV_FILE="/opt/homebrew/etc/rabbitmq/rabbitmq-env.conf" /opt/homebrew/opt/rabbitmq/sbin/rabbitmq-server
==> Analytics
install: 5,891 (30 days), 17,602 (90 days), 70,798 (365 days)
install-on-request: 5,885 (30 days), 17,591 (90 days), 70,778 (365 days)
build-error: 0 (30 days)

从输出可以看到,当前安装的版本是 4.0.7。

第二步:下载对应版本的延迟队列插件

访问 GitHub 上的 rabbitmq-delayed-message-exchange 发布页面,下载与 RabbitMQ 版本匹配的插件文件。

延迟队列插件下载页面

第三步:查找 RabbitMQ 插件目录

1
brew list rabbitmq

输出会显示 RabbitMQ 的安装目录和相关文件。

第四步:安装插件

将下载的插件文件复制到 RabbitMQ 的插件目录,并启用插件:

1
2
3
4
5
6
7
8
# 进入插件目录
cd /opt/homebrew/Cellar/rabbitmq/4.0.7/plugins

# 复制插件文件
cp /Users/yang/Downloads/rabbitmq_delayed_message_exchange-v4.0.7.ez ./

# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

成功启用后的输出示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Enabling plugins on node rabbit@localhost:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
rabbitmq_amqp1_0
rabbitmq_delayed_message_exchange
rabbitmq_management
rabbitmq_management_agent
rabbitmq_mqtt
rabbitmq_stomp
rabbitmq_stream
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
rabbitmq_delayed_message_exchange

started 1 plugins.

第五步:验证安装结果

访问 RabbitMQ 管理界面(默认地址:http://localhost:15672),创建交换机时应该能看到新的交换机类型 x-delayed-message

延迟消息交换机类型

总结

至此,我们已成功在 Mac 上为 RabbitMQ 安装了延迟队列插件。通过这个插件,我们可以实现消息的延迟发送,满足更多业务场景的需求。

参考资料