首先我声明了exchange,queue并将它们绑定在一起。我使用basicPublish方法向这个queue发送了一条消息,因此现在队列中有一条消息。在这个时候,我启动我的消费者程序(使用autoAck = true),并进行调试。当我运行到basicConsume(xxx)时,消息丢失了!我认为当消费者运行到方法nextDelivery()时,它会向broker发送一个basic.ack,但实际上,当我声明消费者时,队列中的消息已经被取走了。为什么?有人能告诉我rabbitmq是在哪个方法之后从队列中删除消息的吗?是在basicConsume()还是nextDelivery()之后呢?谢谢~~~