RabbitMq中的autoAck与no-ack

本文通过对比《RabbitMq实战指南》与《深入RabbitMq》两本书中关于autoAck(no-ack)参数的描述,阐述了其在消息传递过程中的作用。当设置为true时,消息在到达套接字缓冲区即视为已消费,但若此时缓冲区崩溃,未真正消费的消息将丢失。因此,为确保消息可靠送达,推荐将autoAck设为false。

《RabbitMq实战指南》中的autoAck与《深入RabbitMq》中的no-ack其实是同一个意思:
在这里插入图片描述
借《深入RabbitMq》中的图例说明
在这里插入图片描述
autoAck(同no-ack)为true的时候,消息发送到操作系统的套接字缓冲区时即任务消息已经被消费,但如果此时套接字缓冲区崩溃,消息在未被消费者应用程序消费的情况下就被队列删除。

所以,如果想要保证消息可靠的达到消费者端,建议将autoAck字段设置为false,这样当上面套接字缓冲区崩溃的情况同样出现,仍然能保证消息被重新消费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值