RabbitMQ 如何防止重复消费

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

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

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

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

相关推荐
jstart千语30 分钟前
【消息队列】RabbitMQ基本认识
java·服务器·分布式·rabbitmq
DuGuYiZhao1 小时前
Kafka 解惑
分布式·kafka
漂流瓶6666661 小时前
Spark处理过程-转换算子
大数据·分布式·spark
斯普信专业组1 小时前
Kafka 消费者组进度监控方法解析
分布式·kafka
Dreams°1231 小时前
【Python爬虫 !!!!!!政府招投标数据爬虫项目--医疗实例项目文档(提供源码!!!)!!!学会Python爬虫轻松赚外快】
分布式·爬虫·python·mysql·scikit-learn
码观天工2 小时前
【.NET必读】RabbitMQ 4.0+重大变更!C#开发者必须掌握的6大升级要点
c#·rabbitmq·.net·mq
Black_Cat_yyds3 小时前
rabbitmq
java·rabbitmq·java-rabbitmq
LuckyRich15 小时前
【RabbitMq C++】消息队列组件
c++·分布式·rabbitmq
IvanCodes13 小时前
五、Hadoop集群部署:从零搭建三节点Hadoop环境(保姆级教程)
大数据·hadoop·分布式