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

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

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

发布确认

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

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

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

消费者确认

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

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

相关推荐
PingCAP1 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
库库的数据库笔记2 小时前
金融核心交易系统的数据库国产信创改造该如何做?
大数据·数据库·分布式·mysql·oracle·金融·数据库架构
爱吃火鸡面呀8 小时前
深入理解 Spark RDD:五大特性与实战解析
大数据·分布式·spark
Linux实战笔记9 小时前
记一次消息队列选型对比线上排查:Kafka/RabbitMQ/Pulsar 技术选型
kafka·rabbitmq·高并发·pulsar·消息队列选型
Norris Huang10 小时前
Kafka Connect 与 Flink CDC 写入 Iceberg:Upsert 的代价,以及 S3 Tables 的真正价值
分布式·flink·kafka
张彦峰ZYF10 小时前
一条消息的丢与重:Kafka 与 RabbitMQ 可靠投递的确认、位点、死信与幂等全链路
后端·kafka·消息队列·rabbitmq·isr·解耦与削峰·丢失与重复
我就是不信10 小时前
集群高并发环境下如何保证分布式唯一全局ID生成?
分布式
黄俊懿1 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
大菠萝爱上小西瓜1 天前
基于 Spark + Iceberg 湖仓一体的 Netflix 流媒体用户行为全链路数仓与 ALS 智能推荐决策系统(含穿透下钻大屏)
大数据·分布式·spark
吴建旭 智宅焕1 天前
智能家居售后服务体系的架构设计:分布式售后风险的集中式兜底方案
分布式·智能家居