清理rabbitmq queue有多种方式:
方式1. 直接在管理页面删除
访问http://{rabbitmq安装IP}:15672,登录。
点击queues,这里可以看到你创建的所有的Queue,选中某一个Queue,下方有个Delete Queue删除队列/Purge Message清除消息。但是这样只能一个队列一个队列的删除,如果队列中的消息过多就会特别慢。
方式2. 命令行批量删除
操作前特别申明:rabbitmqctl reset相当于重置RabbitMQ,请谨慎操作,配置和队列都会被清除。操作完成,记得添加远程访问账号。
操作步骤:
- 关闭应用的命令为: rabbitmqctl stop_app
- 清除的命令为: rabbitmqctl reset
- 重新启动命令为: rabbitmqctl start_app
- 查看所有队列命令: rabbitmqctl list_queues
以上命令执行完之后,当再次登陆rabbitmq管理界面时,如果你还是以之前的账号密码登陆,那么问题就来了,会一直等了不上,报错如下:
User can only log in via localhost
原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问
systemctl restart rabbitmq-server.service
解决办法:
找到这个文件rabbit.app
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin
cp rabbit.app rabbit.app.bak
将:{loopback_users, [<<”guest”>>]},
改为:{loopback_users, []},
重启rabbitmq,并以用户名:guest、密码:guest登陆,正常。
注意:
1.记得将原来的用户重新添加上,否则服务调用rabbitmq时会由于用户名、密码问题出现异常
2.如果有服务用了长连接,那么这些服务可能要重启