rabbitmq安装延迟队列

在RabbitMQ中,延迟队列是一种特殊的队列类型。当消息被发送到此类队列后,不会立即投递给消费者,而是会等待预设的一段时间,待延迟期满后才进行投递。这种队列在多种场景下都极具价值,比如可用于处理需要在特定时间触发的任务,实现对消息处理的限流,或者在消息发送失败后设置延迟重试等。

使用场景

  • 定时任务: 例如发送提醒邮件或通知,确保在特定时间后再执行。
  • 限流: 控制请求速率,防止瞬时高并发导致的系统崩溃。
  • 重试机制: 在处理失败时,可以将消息延迟后重试,避免立即重试造成的负担。

第一步下载延迟插件

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases

注意:需要根据你自己的 RabbitMQ 服务器端版本选择相同版本的延迟插件,可以在 RabbitMQ 控制台查看:

 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases

我这里mq是3.9.1的所以延迟队列插件选择3.9.0

第二步将插件拷贝至容器中

复制到rabbitmq plugins目录下,linux查询rabbitmq安装包路径命令:whereis rabbitmq

复制到 /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.1/plugins 的目录下,这里着重说一下,我们下载的是.ez文件,如下图所示,直接复制进去就好


第三步执行安装命令

rabbitmq-plugins enable rabbitmq_delayed_message_exchange
这里着重强调一下,我们复制进去的是
rabbitmq_delayed_message_exchange-3.9.0.ez
但是命令执行是不带-3.9.0.ez的

第四步启动插件并重启容器

 rabbitmq-plugins enable rabbitmq_delayed_message_exchange

启动成功

第五步在容器重启完成

我们可以登录RabbitMQ的Web端管理界面,在Exchanges选项卡下,点击Add a new exchange,在Type里面看是否出现了x-delayed-message选项,如下图所示:

表示插件已经安装成功

结尾:样例小程序二维码,我自己做的一个免费好用的【随机选择决定转盘工具】小程序,欢迎扫码体验呦!

谢谢阅读!~~

<think>好的,用户想在CentOS 8上安装RabbitMQ并配置延迟队列插件。我需要根据提供的引用资料来整理步骤。首先,安装RabbitMQ需要先安装Erlang,因为RabbitMQ依赖它。引用[4]提到了安装Erlang的rpm包,然后安装socat,再安装RabbitMQ的rpm。步骤应该是: 1. 下载Erlang和RabbitMQ的rpm包。用户可能需要从官网或EPEL仓库获取,但引用里提到直接使用rpm命令安装,所以可能用户已经有这些包,或者需要手动下载。例如,引用4中使用的是erlang-23.3.4.16和rabbitmq-server-3.8.35的版本。 2. 安装依赖socat,使用yum install socat -y。 3. 按顺序安装Erlang、socat、RabbitMQ。然后启动服务,设置开机启动,如systemctl start rabbitmq-server和systemctl enable rabbitmq-server。 接下来是配置延迟队列插件。引用[3]、[5]提到需要下载插件的.ez文件,通常是rabbitmq_delayed_message_exchange。用户需要从GitHub下载对应版本的插件。例如,引用3中的路径是/usr/lib/rabbitmq/lib/rabbitmq_server-3.10.0/plugins,可能需要将插件文件放到该目录下。然后使用rabbitmq-plugins enable启用插件,并重启服务。 需要注意的是,插件版本必须与RabbitMQ版本兼容。比如,如果用户安装的是3.8.35版本的RabbitMQ,那么插件应该选择对应的版本,可能3.8.x对应的插件。否则可能无法启用。 此外,引用5中提到了在Docker环境中安装插件的方法,但用户可能是在物理机或虚拟机安装,所以需要调整步骤。比如,直接下载插件到本地,复制到插件目录,然后启用。 最后,验证插件是否安装成功,可以通过管理界面查看交换机类型是否有x-delayed-message选项,或者用命令行查询已启用的插件列表。 可能遇到的问题包括:依赖项未安装,比如socat;插件版本不兼容;文件权限问题导致无法复制插件;服务未正确重启等。需要提醒用户检查这些点,并提供相应的解决建议,比如查看日志、确认插件路径是否正确等。</think>### 分步指南:CentOS 8 安装 RabbitMQ 并配置延迟队列插件 #### 一、安装 RabbitMQ 1. **安装依赖项** ```bash dnf install -y epel-release # 启用EPEL仓库 dnf install -y socat logrotate # 必要依赖 ``` 2. **安装 Erlang** RabbitMQ 依赖 Erlang 运行时环境,推荐使用官方仓库安装[^4]: ```bash # 添加 Erlang 仓库 curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash dnf install -y erlang ``` 3. **安装 RabbitMQ** ```bash # 添加 RabbitMQ 仓库 curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash dnf install -y rabbitmq-server ``` 4. **启动服务并设置开机启动** ```bash systemctl enable --now rabbitmq-server systemctl status rabbitmq-server # 验证状态 ``` #### 二、配置延迟队列插件 1. **下载插件** 从 GitHub 下载与 RabbitMQ 版本匹配的插件(例如 3.8.x 版本对应插件 `rabbitmq_delayed_message_exchange-3.8.0.ez`)[^3][^5]: ```bash wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez ``` 2. **安装插件** ```bash # 将插件复制到插件目录(路径可能因版本不同而变化) cp rabbitmq_delayed_message_exchange-3.8.0.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.35/plugins/ # 启用插件 rabbitmq-plugins enable rabbitmq_delayed_message_exchange # 重启服务 systemctl restart rabbitmq-server ``` 3. **验证安装** ```bash rabbitmq-plugins list # 查看已启用插件列表 ``` 在 RabbitMQ 管理界面中,创建交换机时若看到 `x-delayed-message` 类型即表示成功[^3]。 #### 三、可选配置 - **开放防火墙端口**(如需远程访问): ```bash firewall-cmd --permanent --add-port={5672,15672}/tcp firewall-cmd --reload ``` - **启用管理界面**: ```bash rabbitmq-plugins enable rabbitmq_management systemctl restart rabbitmq-server ``` --- ### 常见问题解决 1. **插件版本不兼容** 报错 `{error,{unsupported_rabbitmq_version,"3.8.35"}}` 表示插件RabbitMQ 版本不匹配,需重新下载对应版本插件。 2. **插件目录路径错误** 使用 `find / -name plugins` 查找正确插件目录[^3]。 3. **权限不足** 复制插件文件时若提示权限问题,使用 `sudo cp` 或调整目录权限。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

neter.asia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值