因为笔者的rabbitmq是用docker安装的,所以安装插件也需要使用docker。
一、下载插件
下载地址:https://www.rabbitmq.com/community-plugins.html
下载前请确认自己的RabbitMQ版本,下载对应版本的插件。
安装方式一
将插件上传到docker容器内部
1、首先将下载的插件上传到我们的服务器
[root@root mq]# ls
rabbitmq_delayed_message_exchange-3.8.0.ez
2、使用docker ps命令查看RabbitMQ容器id
docker ps
3、然后进入到容器内部,然后可以看到plugins目录
[root@root mq]# docker exec -it af99480e815d bash
root@af99480e815d:/# ls
bin boot dev etc home lib lib64 media mnt opt plugins proc root run sbin srv sys tmp usr var
4、新开一个窗口,将插件拷贝到容器内plugins目录
[root@root mq]# docker cp rabbitmq_delayed_message_exchange-3.8.0.ez af99480e815d:/plugins
5、在容器查看插件是否存在
root@af99480e815d:/# cd plugins
root@af99480e815d:/plugins# ls |grep delay
rabbitmq_delayed_message_exchange-3.8.0.ez
6、使用命令rabbitmq-plugins enable rabbitmq_delayed_message_exchange
启动插件
root@af99480e815d:/plugins# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@af99480e815d:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
rabbitmq_delayed_message_exchange
rabbitmq_management
rabbitmq_management_agent
rabbitmq_prometheus
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@af99480e815d...
The following plugins have been enabled:
rabbitmq_delayed_message_exchange
started 1 plugins.
7、重启容器
root@af99480e815d:/plugins# exit
exit
[root@root mq]# docker restart af99480e815d
容器启动成功之后,登录RabbitMQ的管理界面,找到Exchanges Tab页。点击add a new...,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。
方式二
使用DockerFile构建
1、首先将下载的插件上传到我们的服务器,然后创建DockerFile文件
touch RabbitMQDockerfile
[root@root mq]# ls
rabbitmq_delayed_message_exchange-3.8.0.ez RabbitMQDockerfile
DockerFile文件内容
FROM rabbitmq:3-management
COPY ["rabbitmq_delayed_message_exchange-3.8.0.ez" , "/plugins/"]
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
FROM:指定基础镜像,并且必须是第一条指令。
RUN:容器构建是需要运行的命令
COPY:拷贝文件和目录到镜像中
2、然后进行打包构建
[root@root mq]# docker build -f RabbitMQDockerfile -t my-rabbitmq .
3、然后查看镜像
[root@root mq]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-rabbitmq latest ed33e79c3a95 12 hours ago 187MB
gitlab/gitlab-ce latest 0c78ed7cea0a 2 months ago 1.92GB
4、然后运行镜像
因为我之前已经安装过了一个mq,所以我这里对外暴露的端口为15673。
docker run -d -p 15673:15672 -p 5673:5672 --name gj-rabbit2 --restart always my-rabbitmq
容器启动成功之后,登录RabbitMQ的管理界面,找到Exchanges Tab页。点击add a new...,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。