RabbitMQ 如何防止重复消费

RabbitMQ的消息消费是有确认机制的,正常情况下,消费者在消息消费成功后,会发送一个确认消息,消息队列接收到之后,就会将该消息从消息队列中删除,下次也就不会再投递了。

但是如果存在网络延迟的问题,导致确认消息没有发送到消息队列,导致消息重投了,是有可能,所以当我们使用MQ的时候,消费者端自己也需要做好幂等控制来防止消息被重复消费。

一般来说,处理这种幂等问题就是我们提过无数次的 一锁,二判,三更新

也就是说我们在发送消息是需要生成一个唯一的标准并且把它放到消息体中,根据这个标识就可以判断两次消息是不是同一条了。这样我们在消费者端,接收到消息以后,只需要解析出消息体中的这个唯一标识,就可以通过 一锁 二判 三更新的方式来判断是否消费成功过了。

相关推荐
陈皮波比茶13 小时前
分布式任务调度xxl-job
java·分布式
敲代码的嘎仔14 小时前
从集群锁失效到异步领券:我用分布式锁 + Redisson + MQ 把领券接口 RT 从 200ms 压到 15ms
java·数据库·redis·分布式·缓存·ai·wpf
lauo17 小时前
FDE的终极形态:从“一个人”到“一个网络”
人工智能·分布式
雾隐隐o1 天前
Kafka 集群搭建:从核心概念到多节点部署
分布式·kafka
IT大白鼠2 天前
MySQL 分布式集群系列 · 第八篇(收官)——NDB 集群面试高频题 +架构总结与未来演进
分布式·mysql·面试
IT大白鼠2 天前
MySQL 分布式集群系列 · 第七篇——生产调优实战:NDB 性能、内存、高可用全方位优化
数据库·分布式·mysql
無a伟2 天前
RabbitMq高级特性:TTL,死信队列,延迟队列
java·分布式·rabbitmq
stark张宇2 天前
从 Paxos 到 Raft:一文讲透分布式一致性与复制状态机
分布式·后端
小楼昨夜又东风1262 天前
kafka、rocketmq、rabbitmq,有什么区别
kafka·rabbitmq·rocketmq
kaoa0002 天前
Linux入门攻坚——89、Hadoop-1-架构及概念
大数据·linux·hadoop·分布式