今天碰到很奇怪的问题,  rabbitmq的队列名称居然为空了,  队列中积累了两百多万的数据, 快把mq搞蹦了,  没有队列名称就删除不了,也清空不了消息,

在服务器节点上:  rabbitmqctl  list_queues   查询队列也超时

这个时候就想起来: 只能把这个队列所在的virtual host 虚拟空间干掉, 不然没办法删除了。

步骤: 1 备份 该队列的  virtual host 

 参考以下任一方式导出包括全部Vhost的RabbitMQ集群元数据文件。

  • RabbitMQ控制台
    1. 在浏览器打开RabbitMQ控制台。

      RabbitMQ控制台地址:http://<您的RabbitMQ IP地址>:15672/

    2. 在登录页面的Username文本框输入您的用户名,在Password文本框输入您的密码,然后单击Login。
    3. RabbitMQ 的队列 queues 名称为空的解决方法
    4. 在Overview页签下方,单击Import/export definitions,从Export区域的Virtual host列表,选择All,然后单击Download broker definitions。
    5. RabbitMQ 的队列 queues 名称为空的解决方法

                      在另存为对话框,选择RabbitMQ集群元数据文件保存路径,然后单击保存。

                      RabbitMQ 的队列 queues 名称为空的解决方法

   导出对应的 virtual host  后点击 

1:  菜单栏 的:  Admin      

 2:  右边的 : virtual Hosts 

 3:左边的  virtual hosts  中对应的name

 4: 进入对应的virtual host 后, 点击最下方的: delete this virtual host 的按钮进行删除。

 

删除完成后, 将导出的 虚拟空间json中 空name 的 队列删除 。  然后 在overview的最下方的  import  definitions   进行导入。

就完成了。

相关文章: