rabbitmq队列清理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq队列清理相关的知识,希望对你有一定的参考价值。

参考技术A 如果队列拥塞,紧急情况下,为恢复业务,不得不进行队列清理(需要确认清楚,数据丢失的后果是你能承受的).

在web管理端可以进行操作,选择到要操作的队列,下拉里面有一个Purge(不要选到delete)

java如何获取rabbitmq队列中消息数量

参考技术A 下面是RabbitMQ的消息确认机制:“为了确保消息不会丢失,RabbitMQ支持消息确认机制。客户端在接受到消息并处理完后,可以发送一个ack消息给RabbitMQ,告诉它该消息可以安全的删除了。假如客户端在发送ack之前意外死掉了,那么RabbitMQ会将消息投递到下一个consumer客户端。如果有多个consumer客户端,RabbitMQ在投递消息时是轮询的。RabbitMQ如何判断客户端死掉了?唯一根据是客户端连接是否断开。这里没有超时机制,也就是说客户端可以处理一个消息很长时间,只要没断开连接,RabbitMQ就一直等待ack消息。”我现在遇到的问题是这样的:我这边有几条线程去消息队列里取数据,但是会有异常数据导致线程挂掉,就是上边的“客户端在发送ack之前意外死掉了”,RabbitMQ会将消息投递到下一个consumer客户端,这样一条异常数据会把我的所有线程挂掉,我现在想实现这样的功能:如果有异常数据导致进程挂掉,那么我不让RabbitMQ将这条消息投递到下一个consumer客户端,而是放到另一个地方或者另外处理,请问该如何实现呢?

以上是关于rabbitmq队列清理的主要内容,如果未能解决你的问题,请参考以下文章

【rabbitMQ】消息队列之 rabbitMQ

rabbitmq如何用命令删除队列

java如何获取rabbitmq队列中消息数量

如何利用python查看rabbitmq队列长度

RabbitMQ六种队列模式-工作队列模式

RabbitMQ——RabbitMQ消息队列集群