docker rabbitmq 安装 延迟队列 rabbitmq_delayed_message_exchange 插件

以  官方的 rabbitmq:3.9.20-management 为例,默认开启的插件有4个,如下所示

2022-07-09 21:31:55.624125+08:00 [info] <0.814.0> started TCP listener on [::]:5672
 completed with 4 plugins.
2022-07-09 21:31:55.933210+08:00 [info] <0.669.0> Server startup complete; 4 plugins started.
2022-07-09 21:31:55.933210+08:00 [info] <0.669.0>  * rabbitmq_prometheus
2022-07-09 21:31:55.933210+08:00 [info] <0.669.0>  * rabbitmq_management
2022-07-09 21:31:55.933210+08:00 [info] <0.669.0>  * rabbitmq_web_dispatch
2022-07-09 21:31:55.933210+08:00 [info] <0.669.0>  * rabbitmq_management_agent

从上面的日志可以看出,默认开启的4个  rabbitmq_prometheus  rabbitmq_management  rabbitmq_web_dispatch  rabbitmq_management_agent。

进入今天的正题,开启 延迟队列  rabbitmq_delayed_message_exchange

方式一

容器启动后,执行exec -it,然后手工安装。好像这个也行,但是没有达到我的要求。我的要求比较高。试想一下,如果使用docker swarm(会有多主机,多个运行容器的问题,也就是说,以后会有多少个容器是未知的,所以也就不可能docker exec -it 进行安装了)。所以此方案不考滤。

方式二

那就从映像上入手呗。基于官网的说明,那就自己构造镜像(是在官网的基出上哦,不是从零开始)。docker rabbit上有这么一句

FROM rabbitmq:3.8-management
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp

好的,那就试试它吧。

整理一下过程

1、下载延迟队列插件所需的文件,并且放在和Dockerfile文件同一目录下

2、编写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

3、构建Image

[root@centos7-01 rabbitmq]# docker build -t my-rabbitmq:3.9.20-management .
Sending build context to Docker daemon  40.96kB
Step 1/3 : FROM rabbitmq:3.9.20-management
 ---> fb704bff19d0
Step 2/3 : COPY rabbitmq_delayed_message_exchange-3.9.0.ez /plugins
 ---> f1820f32b441
Step 3/3 : RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange
 ---> Running in 2889e79eda7b
Enabling plugins on node rabbit@2889e79eda7b:
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@2889e79eda7b...
The following plugins have been enabled:
  rabbitmq_delayed_message_exchange

set 5 plugins.
Offline change; changes will take effect at broker restart.
Removing intermediate container 2889e79eda7b
 ---> ddcdf3a8eb80
Successfully built ddcdf3a8eb80
Successfully tagged my-rabbitmq:3.9.20-management
[root@centos7-01 rabbitmq]# 

4、测试一下生成的Image

[root@centos7-01 rabbitmq]# docker run --name  my-rab-test  my-rabbitmq:3.9.20-management
2022-07-09 14:08:27.502513+00:00 [info] <0.228.0> Feature flags: list of feature flags found:
2022-07-09 14:08:27.551333+00:00 [info] <0.228.0> Feature flags:   [ ] implicit_default_bindings
2022-07-09 14:08:27.551460+00:00 [info] <0.228.0> Feature flags:   [ ] maintenance_mode_status
2022-07-09 14:08:27.551568+00:00 [info] <0.228.0> Feature flags:   [ ] quorum_queue
2022-07-09 14:08:27.551636+00:00 [info] <0.228.0> Feature flags:   [ ] stream_queue
2022-07-09 14:08:27.551793+00:00 [info] <0.228.0> Feature flags:   [ ] user_limits

......  省略了一些


2022-07-09 14:08:49.027571+00:00 [info] <0.840.0> started TCP listener on [::]:5672
 completed with 5 plugins.
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0> Server startup complete; 5 plugins started.
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0>  * rabbitmq_prometheus
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0>  * rabbitmq_delayed_message_exchange
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0>  * rabbitmq_management
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0>  * rabbitmq_web_dispatch
2022-07-09 14:08:49.540134+00:00 [info] <0.685.0>  * rabbitmq_management_agent

可以看到,官方的是4个插件,现在变成了5个了,并且看到了  rabbitmq_delayed_message_exchange

5、提交Image到私服

6、后面使用的话,由   rabbitmq:3.9.20-management 改为  my-rabbitmq:3.9.20-management 即可。

参考:docker compose 安装 Rabbitmq 并安装延迟队列插件_垂柳踏浪的博客-CSDN博客_docker-compose rabbitmq

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值