RabbitMQ的消息确认机制是怎么工作的?

RabbitMQ的消息确认机制主要是用于确保消息的可靠传递,防止消息丢失

通过发布确认消费者确认来实现。

发布确认

当生产者发送消息到RabbitMQ时,可以选择开启发布确认模式,当RabbitMQ成功将消息入队/持久化之后,会发送一个ACK回复生产者,告知消息成功到达队列;

仅当消息处理失败时会返回NACK。

如果生产者在合理的时间内没有收到ACK或者NACK,则可以重发消息

消费者确认

消费者在处理完一条消息之后,必须发送一个ACK给RabbitMQ,告知RabbitMQ该消息已经处理完成,RabbitMQ在收到ACK之后会将该消息从队列中永久删除。

如果RabbitMQ在收到消费者ACK之前检测到消费者已经断开连接,则认为该消息没有被成功处理,RabbitMQ会重新发送给其他消费者消费

相关推荐
用户8307196840822 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者3 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者5 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧6 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖6 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农6 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者6 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀6 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式
Ronin3056 天前
信道管理模块和异步线程模块
开发语言·c++·rabbitmq·异步线程·信道管理
Asher05096 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式