(踩坑篇)docker下载rabbitmq延迟队列插件后无法启动服务

rabbitmq延迟队列插件

因为最开始的rabbitmq是没有发送延迟消息这个功能,所以很多有这个需求的人用死信交换机来实现,mq官方看见就坐不住了,死信交换机不是这么用的啊,于是官方自己写了个插件,来实现延迟队列,就是rabbitmq-delayed-message-exchange 插件


配置流程(docker)

在保证自己rabbitmq镜像能正常启动之后

下载插件

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
放到任意位置即可

  • 进入放rabbitmq_delayed_message_exchange-3.9.0.ez插件的目录
cd /home/docker
  • 将插件拷贝到容器内plugins目录下(rabbitmq是RabbitMQ容器的容器名称,也可以使用容器ID)
docker cp rabbitmq_delayed_message_exchange-3.9.0.ez rabbitmq:/plugins
  • 进入 RabbitMQ 容器
docker exec -it cd-rabbitmq /bin/bash
  • 查看 rabbitmq_delayed_message_exchange-3.9.0.ez 插件是否存在
cd plugins
ls |grep delay
  • 在 plugins 内启用 rabbitmq_delayed_message_exchange-3.9.0.ez 插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  • 退出RabbitMQ容器
exit
  • 重启 RabbitMQ 容器
  • docker restart

    踩坑

 版本问题

下载完插件时没留意版本,随便下了一个

到启动插件的时候报错

Error:
Failed to enable some plugins: 
    rabbitmq_delayed_message_exchange:
        Plugin doesn't support current server version. Actual broker version: "3.9.11", supported by the plugin: ["3.7.0-3.7.x",
                                                                                                                  "3.8.0-3.8.x"]

一定版本要对应,3.9.x的版本要用3.9的插件

rabbitmq_management没有开启

这时候容器正常启动,插件开启正常,日志没有报错,端口暴露没问题,但是就是无法连接mq管理页面,找了很多资料,最后翻到了是因为没开启对应的插件,management对应的就是管理页面

需要执行一下以下两行命令

docker exec -it rabbitmq bash

rabbitmq-plugins enable rabbitmq_management

最后成功启动

不禁感慨,bug会以你各种意想不到形式出现

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值