RabbitMQ 安装延迟队列插件(六)

3,773 阅读3分钟

这是我参与更文挑战的第 24 天,活动详情查看: 更文挑战

日积月累,水滴石穿 😄

因为笔者的RabbitMQ是使用Docker安装的,所以安装插件也需要使用到Docker

下载插件

下载地址:www.rabbitmq.com/community-p… image.png 下载前请确认自己的 RabbitMQ 版本,下载对应版本的插件。 image.png

安装方式一

将插件上传到 Docker 容器内部

  • 1、首先将下载的插件上传到我们的服务器,笔者将安装包放在了 mq 目录
[root@root mq]# ls
rabbitmq_delayed_message_exchange-3.8.0.ez
  • 2、使用 docker ps命令查看 RabbitMQ 容器id
docker ps

image.png

  • 3、然后进入到 RabbitMQ 容器内部,然后可以看到 plugins 目录
[root@root mq]# docker exec -it 容器id 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、新开一个窗口,将 Linux 服务器的压缩包拷贝到 RabbitMQ 容器内 plugins 目录
[root@root mq]# docker cp rabbitmq_delayed_message_exchange-3.8.0.ez af99480e815d:/plugins
  • cp: 用于容器与主机之间的数据拷贝。

  • 5、在 RabbitMQ 容器内部,查看插件是否存在

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选项,如果存在就代表插件安装成功。 image.png

安装方式二

使用DockerFile构建

  • 1、首先将下载的插件上传到我们的 Linux 服务器,然后创建 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:指定基础镜像,并且必须是第一条指令。

  • COPY:拷贝文件和目录到镜像中

  • RUN:容器构建是需要运行的命令

  • 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
  • run:创建一个新的容器并运行指定命令
  • -d: 后台运行容器,并返回容器ID
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • --name="nginx-lb": 为容器指定一个名称; 容器启动成功之后,登录 RabbitMQ的管理界面,找到Exchanges Tab页。点击add a new...,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。

image.png

  • 如你对本文有疑问或本文有错误之处,欢迎评论留言指出。如觉得本文对你有所帮助,欢迎点赞和关注。