《RabbitMq实战指南》中的autoAck与《深入RabbitMq》中的no-ack其实是同一个意思:

借《深入RabbitMq》中的图例说明

autoAck(同no-ack)为true的时候,消息发送到操作系统的套接字缓冲区时即任务消息已经被消费,但如果此时套接字缓冲区崩溃,消息在未被消费者应用程序消费的情况下就被队列删除。
所以,如果想要保证消息可靠的达到消费者端,建议将autoAck字段设置为false,这样当上面套接字缓冲区崩溃的情况同样出现,仍然能保证消息被重新消费。
本文通过对比《RabbitMq实战指南》与《深入RabbitMq》两本书中关于autoAck(no-ack)参数的描述,阐述了其在消息传递过程中的作用。当设置为true时,消息在到达套接字缓冲区即视为已消费,但若此时缓冲区崩溃,未真正消费的消息将丢失。因此,为确保消息可靠送达,推荐将autoAck设为false。
《RabbitMq实战指南》中的autoAck与《深入RabbitMq》中的no-ack其实是同一个意思:

借《深入RabbitMq》中的图例说明

autoAck(同no-ack)为true的时候,消息发送到操作系统的套接字缓冲区时即任务消息已经被消费,但如果此时套接字缓冲区崩溃,消息在未被消费者应用程序消费的情况下就被队列删除。
所以,如果想要保证消息可靠的达到消费者端,建议将autoAck字段设置为false,这样当上面套接字缓冲区崩溃的情况同样出现,仍然能保证消息被重新消费。
3014

被折叠的 条评论
为什么被折叠?