Un mensaje no confirmado implica que ha sido leído por su consumidor, pero el consumidor nunca ha enviado un ACK al intermediario RabbitMQ para informarle que ha terminado de procesarlo.
No estoy demasiado familiarizado con el plugin Spring Framework, pero en algún lugar (para su consumo) se le declara su cola, que podría ser algo como esto (tomado de http://www.rabbitmq.com/tutorials/tutorial-two-java.html):
channel.queueDeclare(queueName, ....)
entonces se quiere configurar su consumo
bool ackMode = false;
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(queueName, ackMode, consumer);
ackMode arriba es un valor lógico, estableciéndolo en falso, estamos diciendo explícitamente a RabbitMQ que mi consumidor va a reconocer cada mensaje que se da. Si este indicador se estableció en verdadero, entonces no vería el conteo no reconocido en RabbitMQ, en vez de que el consumidor haya leído el mensaje (es decir, que haya sido entregado al consumidor, lo eliminará de la cola).
Reconocer un mensaje que haría algo como esto:
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
//...do something with the message...
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); //the false flag is to do with multiple message acknowledgement
Si puede publicar algunos de su código de consumo entonces yo podría ser capaz de ayudar aún más ... pero en la media hora Eche un vistazo a BlockingQueueConsumer específicamente: el constructor verá que puede configurar el AcknowledgeMode y también eche un vistazo al nextMessage() esto devolverá un objeto Message que contiene un método llamado getDeliveryTag() que devolverá un Long que es el ID que enviaría en la baseAck