rabbitmq_delayed_message_exchange安装

该博客介绍了RabbitMQ插件的下载与安装,包括基于Linux和Docker的安装命令示例,通过web界面判断安装是否成功。同时针对启动插件报错和启容器报错给出解决办法,如检查版本兼容性、重启docker服务器等。


一、插件下载

插件网站(下载.ez)
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases

版本选择
进入rabbitmq web界面 选择跟红框对应的版本即可
在这里插入图片描述

二、基于Linux

命令如下(示例):

--1、cd到rabbitmq默认安装位置
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.18/plugins

--2、通过ftp工具将插件上传到此目录下

--3、开启插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

--4、重启MQ服务
systemctl restart rabbitmq-server

三、基于Docker

命令如下(示例):

--1、通过ftp工具将插件上传到Linux服务器的根目录下

--2、拷贝到docker中rabbitmq插件目录下,rabbitmq_delayed_message_exchange-3.9.0.ez(下载包的全名)
docker cp /rabbitmq_delayed_message_exchange-3.9.0.ez 容器ID:/plugins

--3、进入容器
docker exec -it 容器id /bin/bash

--4、查看插件是否存在(确保2中的操作已经将插件拷贝过来了)
cd plugins
ls |grep delay

--5、开启插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

--6、退出容器
exit

--7、重启MQ服务
docker restart 容器ID

四、安装成功

web界面新建交换机选择类型出现红框标注即表示成功
在这里插入图片描述

五、异常解决

启动插件报错

检查版本与插件的兼容关系,确保下载的插件版本匹配安装的MQ服务

启容器报错Error response from daemon: driver failed programming external connectivity

原因:在我们启动了Docker后,我们再对防火墙firewalld进行操作,就会报错

详细原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,
firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后操作 firewalld ,你就需要重启 Docker 进程了

解决方法:重启docker服务器——systemctl restart docker

Docker中使用rabbitmq_delayed_message_exchange插件,可通过以下几种方法实现: ### 方法一:使用`docker cp`命令 以插件名称为`rabbitmq_delayed_message_exchange-3.9.0.ez`,容器ID为`79e361d60df2`,容器中的插件保存地址为`/opt/rabbitmq/plugins`为例,可使用如下命令将插件复制到容器内: ```bash docker cp rabbitmq_delayed_message_exchange-3.9.0.ez 79e361d60df2:/opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez ``` 此方法适用于已经运行的RabbitMQ容器,直接将本地的插件文件复制到容器内指定目录 [^1][^3]。 ### 方法二:编写Dockerfile脚本 可编写如下Dockerfile脚本: ```Dockerfile FROM rabbitmq:3.9.20-management COPY rabbitmq_delayed_message_exchange-3.9.0.ez /plugins RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange ``` 该脚本以`rabbitmq:3.9.20-management`为基础镜像,将插件文件复制到容器的`/plugins`目录,并离线启用该插件。使用此方法构建镜像时,会自动完成插件的复制和启用操作 [^2]。 ### 方法三:复制插件并进入容器安装 将插件复制到RabbitMQ容器内,然后进入容器安装插件,步骤如下: 1. 拷贝插件至Docker容器内: ```bash docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez rabbitmq容器ID:/plugins ``` 2. 进入Docker容器内: ```bash docker exec -it rabbitmq bash ``` 3. 赋予插件文件权限: ```bash chmod 777 /plugins/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez ``` 4. 启动延时插件: ```bash rabbitmq-plugins enable rabbitmq_delayed_message_exchange ``` 此方法需要手动进入容器进行权限设置和插件启用操作 [^4]。 ### 其他相关操作 还可执行如下命令: ```bash echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf ``` 该命令用于配置管理代理的指标收集器 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值