最近学习rabbitmq,发现安装第三方插件时候遇到了一些问题,一直错误,plugins_not_found,因为使用了最新版,没有找到解决方案,大部分都用3.8以下版本,最后查阅官方文档,终于解决了。
发现问题
版本 RabbitMQ 3.13.2 Erlang 26.2.5
docker 安装后需要将第三方插件拷贝到容器里面,我这里映射了目录如下
/docker/rabbitmq/data:/var/lib/rabbitmq
下载插件地址
将插件复制到宿主机目录中/docker/rabbitmq/data
进入容器docker exec -it mq
显示插件目录
rabbitmq-plugins directories -s
# => Plugin archives directory: /path/to/rabbitmq/plugins
# => Plugin expansion directory: /path/to/node/node-plugins-expand
# => Enabled plugins file: /path/to/enabled_plugins
我将插件放到Plugin expansion directory,开启插件失败。
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@rabbitmq:
rabbitmq_delayed_message_exchange
Error:
{:plugins_not_found, [:"rabbitmq_delayed_message_exchange"]}
解决方案
查阅官方文档,需要将.ez的插件拷贝到第一个目录。
上面示例中的第一个目录是第三方插件目录。第二个插件包含RabbitMQ附带的插件,并将随着安装的RabbitMQ版本在升级之间的变化而变化。