RabbitMQ 如何防止重复消费

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

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

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

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

相关推荐
仗剑_走天涯2 小时前
Hadoop 安装
大数据·hadoop·分布式
czlczl200209252 小时前
Zookeeper原理
分布式·zookeeper·云原生
weixin199701080164 小时前
《深入浅出:图解淘宝分布式数据库TDDL(及开源替代方案)》
数据库·分布式·开源
bukeyiwanshui4 小时前
Hadoop环境搭建
大数据·hadoop·分布式
白驹过隙不负青春6 小时前
Zookeeper版本升级
分布式·zookeeper·云原生
安审若无6 小时前
【无标题】
中间件·rabbitmq
真上帝的左手7 小时前
12. 消息队列-RabbitMQ-高可用队列详解
分布式·rabbitmq·mq
断春风8 小时前
RabbitMQ在Java中的应用与实践
java·rabbitmq·java-rabbitmq
小白学大数据9 小时前
效率翻倍:Scrapy-Redis 分布式全站爬虫并发优化进阶
redis·分布式·爬虫·scrapy
YDS82917 小时前
黑马点评 —— 分布式锁详解加源码剖析
java·spring boot·redis·分布式