core.async高级模式实战:状态机、广播通信与动态流程编排
2026/5/4 3:23:25
在使用RabbitMQ实现延迟队列功能时,需要安装官方提供的rabbitmq_delayed_message_exchange插件。本文记录在1Panel管理的Docker环境中安装该插件的完整过程。
# 容器信息CONTAINER ID IMAGE NAMES ec9ab4f1be3e rabbitmq:4.1.0-management-alpine rabbitmqrabbitmq# 从GitHub Releases下载对应版本的插件wgethttps://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.1.0/rabbitmq_delayed_message_exchange-4.1.0.ez注意:插件版本必须与RabbitMQ主版本一致(如4.1.x对应4.1.0)。
# 将插件复制到RabbitMQ的plugins目录dockercprabbitmq_delayed_message_exchange-4.1.0.ez rabbitmq:/plugins/# 在容器内执行插件启用命令(Alpine镜像使用/bin/sh)dockerexec-it rabbitmq /bin/sh -c"rabbitmq-plugins enable rabbitmq_delayed_message_exchange"输出示例:
Enabling plugins on node rabbit@ec9ab4f1be3e: rabbitmq_delayed_message_exchange The following plugins have been configured: rabbitmq_delayed_message_exchange Applying plugin configuration to rabbit@ec9ab4f1be3e... The following plugins have been enabled: rabbitmq_delayed_message_exchange set 1 plugins. Offline change; changes will take effect at broker restart.# 重启使插件生效docker restart rabbitmq# 检查插件列表,确认delayed插件状态为E*(启用)dockerexec-it rabbitmq rabbitmq-plugins list|grepdelayed成功标志:
[ ] rabbitmq_delayed_message_exchange 4.1.0 # 重启后应显示为 [E*] 表示已启用http://宿主机IP:15672(默认用户名密码guest/guest)错误:Plugin doesn't support current server version
解决:确保插件版本与rabbitmq:4.1.0主版本一致(都用4.1.x)
解决:使用/plugins/(RabbitMQ官方镜像默认路径)
现象:插件状态显示[ ]而非[E*]
解决:必须执行docker restart rabbitmq
解决:确认容器名称正确,使用docker ps查看最新容器名
#!/bin/bash# RabbitMQ延迟插件一键安装脚本PLUGIN_VERSION="4.1.0"RABBITMQ_CONTAINER="rabbitmq"echo"开始安装RabbitMQ延迟消息插件..."# 下载插件wget-q https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v${PLUGIN_VERSION}/rabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez# 复制到容器dockercprabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez${RABBITMQ_CONTAINER}:/plugins/# 启用插件dockerexec-it${RABBITMQ_CONTAINER}/bin/sh -c"rabbitmq-plugins enable rabbitmq_delayed_message_exchange"# 重启容器docker restart${RABBITMQ_CONTAINER}echo"安装完成!验证中..."dockerexec-it${RABBITMQ_CONTAINER}rabbitmq-plugins list|grepdelayed在Docker环境中安装RabbitMQ插件的核心步骤:下载→复制→启用→重启→验证。通过1Panel管理时,需注意:
/bin/sh而非/bin/bashrabbitmq-plugins list验证最终状态此方法适用于所有Docker部署的RabbitMQ环境,不仅限于1Panel。