OnMyHeart 2020-05-27
消费者订阅队列(Consume)时可以指定autoAck参数,当autoAck为false时,RabbitMQ会等消费者显式地回复确认信号后才从内存(或磁盘)移去消息(实质上是先打上删除标记,之后再删除)。当autoAck为true时会自动确认,然后删除消息。
当autoAck 参数置为 false ,对于 RabbitMQ 服务端而言 ,队列中的消息分成了两个部分:一部分是等待投递给消费者的消息;一部分是己经投递给消费者,但是还没有收到消费者确认
信号的消息。 如果 RabbitMQ 直没有收到消费者的确认信号,并且消费此消息的消费者己经
断开连接(断开连接是唯一标准,不会超时),则 RabbitMQ 会安排该消息重新进入队列,等待投递给下 个消费者,当然也有可
能还是原来的那个消费者。
参考:RabbitMQ实战