1.rabbitmq安装插件常规方法
官方的插件地址http://www.rabbitmq.com/community-plugins.html
下载所需要的插件,后缀为.ez。安装时需要将.ez文件拷贝到安装的插件目录。
以下是不同系统中默认安装的插件目录路径:
Linux /usr/lib/rabbitmq/lib/rabbitmq_server-version/plugins
Windows C:\Program Files\RabbitMQ\rabbitmq_server-version\plugins(安装rabbitmq的目录)
Homebrew /usr/local/Cellar/rabbitmq/version/plugins
Generic Unix rabbitmq_server-version/plugins (安装rabbitmq的目录)
插件安装完成后可以通过命令sudo rabbitmq-plugins list查看已有插件列表
文件拷贝到插件目录后可以通过命令sudo rabbitmq-plugins enable plugin-name启用插件。
至此插件安装完成。
以前为网上查到的常规安装方法
2.在docker容器中查找路径
k8s中mq部署时挂载了PVC,所以没有办法直接连接服务器将文件拷到磁盘上。
所以想办法进入到挂载的pvc磁盘中,见另一篇文章。
linux 下怎么进入挂载的磁盘,例如 /dev/sda1
但是进入到挂载的磁盘中,发现并没有对应的plugins文件夹。所以放弃此方法。
docker容器运行后,个人理解就是一台新的虚拟机,所以得在k8s中进入容器的终端操作。相当于直接进入到docker的虚拟机里了。
按照此步骤发现并没有找到Linux下的plugins文件夹/usr/lib/rabbitmq/lib/rabbitmq_server-version/plugins
翻遍了终端中的文件夹,无意中发现根目录有一个plugins的文件夹,打开一看果然全是rabbitmq的各种.ez插件文件。
然后才想起来用linux的搜索文件命令Linux命令之文件搜索
find / -name plugins
找出plugins的文件夹为: /opt/rabbitmq/plugins
或者 grep -r --include="*.ez" / 搜索后缀为ez的文件
3.向容器中的plugins文件夹拷贝插件
先将要安装的插件.ez文件上传到宿主机,wget url的方式也可以
然后将.ez文件拷贝到/opt/rabbitmq/plugins
拷贝方法如下:
拷贝本地文件到docker容器
查找所有容器,找到容器名字 docker ps -a
用容器名字查找容器长ID docker inspect -f '{{.ID}}' 容器名
拷贝本地文件到容器 docker cp 本地路径 容器长ID:容器路径
另一种方法不用找容器长ID,直接用容器名,经验证可用。docker容器与宿主拷贝文件
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
4.到终端中启用插件
rabbitmq-plugins list查看已有插件列表是否包含此次安装的
rabbitmq-plugins enable plugin-name启用插件
此次安装插件为rabbitmq_delayed_message_exchange
在新增交换机这里,发现多了一个类型