当前位置:   article > 正文

Docker 客户端rabbitmq下载安装rabbitmq-delayed-message-exchange插件_docker rabbitmq detaly-message

docker rabbitmq detaly-message

下载延迟插件
RabbitMQ 的 3.5.7 版本之后,提供了一个插件(rabbitmq-delayed-message-exchange)来实现延迟队列 ,同时需保证 Erlang/OPT 版本为 18.0 之后。
我这里 MQ 的版本是 3.10.5,现在去 GitHub 上下载最新版插件(插件具有兼容性)
下载地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases 下载.ez后缀的版本
在这里插入图片描述
安装插件并启用
我用的是 Docker 客户端,下载完成后直接把插件放在 /root 目录,然后拷贝到容器内plugins目录下(rabbitmq是容器的name,也可以使用容器id)
1.将下载好的rabbitmq_delayed_message_exchange-3.10.2.ez插件上传到虚拟机root目录下,我这边用的可视化工具直接拖拽的。
在这里插入图片描述
2.将插件复制到docker容器里面的rabbitmq插件目录下

docker cp /root/rabbitmq_delayed_message_exchange-3.10.2.ez rabbitmq:/plugins
  • 1

3.进入 Docker 容器

docker exec -it rabbitmq /bin/bash
  • 1

4.查看插件是否成功复制

cd plugins
ls
  • 1
  • 2

在这里插入图片描述

5.在plugins内启用插件

rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  • 1

出现下面的内容时代表已经启动成功了。
在这里插入图片描述
但是如果你出现这样的错误(不一定会出现)

Enabling plugins on node rabbit@localhost:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
** (CaseClauseError) no case clause matching: {:error, {:cannot_read_enabled_plugins_file, '/etc/rabbitmq/enabled_plugins', :eacces}}
    (rabbitmqctl) lib/rabbitmq/cli/plugins/plugins_helpers.ex:115: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/4
    (rabbitmqctl) lib/rabbitmq/cli/plugins/commands/enable_command.ex:129: anonymous fn/6 in RabbitMQ.CLI.Plugins.Commands.EnableCommand.do_run/2
    (elixir) lib/stream.ex:1311: anonymous fn/2 in Stream.iterate/2
    (elixir) lib/stream.ex:1497: Stream.do_unfold/4
    (elixir) lib/stream.ex:1568: Enumerable.Stream.do_each/4
    (elixir) lib/stream.ex:936: Stream.do_enum_transform/7
    (elixir) lib/stream.ex:1568: Enumerable.Stream.do_each/4
    (elixir) lib/enum.ex:1990: Enum.reduce_while/3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

解决办法:
你就需要加上umask 0022; 重新启动插件(最好把原来的都删了从头再来一遍)使用这个命令启动监控插件,默认在/etc/rabbitmq目录下创建enabled_plugins文件时赋予权限。

umask 0022; rabbitmq-plugins enable rabbitmq_management
  • 1

6.退出容器

exit
  • 1

7.重启 RabbitMQ

docker restart rabbit
  • 1

然后通过UI查看,可以看到交换机已经多出了一个类型x-delayed-message
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/689370
推荐阅读
相关标签
  

闽ICP备14008679号