RabbitMQ消息确认机制 basicAck 设置basic.ack为肯定): // this example assumes an existing channel instanceboolean autoAck false; boolean autoAck false; channel.basicConsume(queueName, autoAck, "aconsumertag", new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { long deliveryTag envelope.getDeliveryTag(); // positively acknowledge a single delivery, the message will // be discarded channel.basicAck(deliveryTag, false); } }); 未确认的消息缓存在内存中,如果未确认的消息过多,会导致内存使用率过高,此时可以在客户端配置预取值来限制消费者预取的消息数量,具体方法请参见预取值。
来自: