对于rabbitmq删除队列消息,有下面几种方式:
1. rabbitmqctl --node rabbit@node --vhost testVHost purge_queue testQueue
该方式是命令行删除,等同于web ui管理界面的点击testQueue队列 -> Purge (Purge Message),该方式能删除所有ready的消息,对于unacked消息无法删除。如果需要删除unacked消息,需要将该队列上的所有消费者停止,unacked消息会自动变为ready消息,此时通过purge_queue命令可以删除。
2. rabbitmqctl reset命令
该方式需要执行如下命令:
rabbitmqctl stop_app -> rabbitmqctl reset -> rabbitmqctl start_app
注意此方式,会同时清除一些配置信息,需要慎用。
3. rabbitmqctl delete_queue删除队列,然后重建
该方式就是将队列删除,重新建一个,煎蛋很粗暴。
4. 代码方式实现,在消费到消息后,可以自动或者手动ack消息,对于ack确认后的消息会从队列中清除