分布式消息服务RABBITMQ版-删除RabbitMQ Queue:方法五:调用API批量删除队列

时间:2024-07-10 15:56:42

方法五:调用API批量删除队列

在RabbitMQ实例未开启SSL时,通过编写Shell脚本循环调用API执行删除命令,实现批量删除队列。

  1. 在Linux系统中连接RabbitMQ实例,具体步骤请参考使用客户端连接RabbitMQ(关闭SSL)
  2. 创建“delete_queues.sh”脚本文件。

    touch delete_queues.sh

  3. 执行以下命令,编辑脚本。

    vim delete_queues.sh

    将以下内容复制到脚本中,其中USERNAME、PASSWORD、HOST和QUEUES_LIST的值,请根据实际情况修改。

    #!/usr/bin/env bash 
    
    USERNAME=root 
    PASSWORD=Zsxxxdx 
    HOST=192.168.0.241 
    PORT=15672 
    VHOST='%2F' 
    
    
    QUEUES_LIST="test1 test2 test3"; 
    for QUEUE_NAME in $QUEUES_LIST : 
    do 
       curl -i -XDELETE http://$USERNAME:$PASSWORD@$HOST:$PORT/api/queues/$VHOST/$QUEUE_NAME 
    done
    参数说明如下:
    • USERNAME:创建实例时设置的用户名。
    • PASSWORD:创建实例时设置的密码,如果忘记密码,参考重置RabbitMQ实例密码,重新设置密码。
    • HOST:在实例详情页,查看Web界面UI地址。
    • PORT:在实例详情页,查看Web界面UI端口号。
    • VHOST:Vhost名称,默认为“/”,在命令中设置为“%2F”。
    • QUEUES_LIST:待删除队列的名称,队列名称之间使用空格隔开。

  4. 保存脚本内容。
  5. 对脚本进行授权。

    chmod 777 delete_queues.sh

  6. 执行脚本。

    sh delete_queues.sh

    删除成功后,回显如下:

    图6 批量删除队列成功

    您还可以在WebUI页面的“Queues”页签,查看队列是否成功删除。

support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-0005.html