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

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

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

发布确认

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

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

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

消费者确认

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

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

相关推荐
.冰块.2 小时前
Ceph 分布式存储实战(二):存储池管理与 cephx 认证授权
分布式·ceph·rados·纠删码·复本池·cephx认证与用户权限
我们从未走散4 小时前
从内存字典到租约内核:分布式上游账号池如何做到不超卖
分布式
.冰块.5 小时前
Ceph 分布式存储实战(一):架构入门与 cephadm 集群部署
分布式·ceph·架构·cephadm
j7~6 小时前
【Redis】《一文走完服务端高并发架构演进:从单机架构到 K8S 容器编排》
分布式·架构演进·服务端高并发分布式结构演进之路·架构基本概念·架构评价指标
Flynt6 小时前
把 bug tracker 塞进 git 仓库,同步和冲突怎么解决?我把 git-bug 拆开实测了一遍
分布式·git·开源
灯澜忆梦1 天前
【RabbitMQ #3】 | Go 客户端 + SpringAMQP
分布式·golang·rabbitmq
Q26433650231 天前
【有源码】基于Spark的电商客户细分与盈利洞察分析系统-面向精准营销的电商客户细分模型构建与盈利能力可视化研究
大数据·hadoop·分布式·数据挖掘·数据分析·spark·毕业设计
晴空蓝天1 天前
RabbitMQ 消息可靠投递:confirm 确认 + 消费重试 + 死信队列
rabbitmq
驭渊的小故事1 天前
RabbitMQ 环境配置和 DirectRabbitConfig 的 SpringBoot 4.0.X 版本
spring boot·rabbitmq·java-rabbitmq