RabbitMQ 如何防止重复消费

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

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

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

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

相关推荐
shaodong11236 分钟前
鸿蒙系统-同应用跨设备数据同步(分布式功能)
分布式·华为·harmonyos
xiao-xiang3 小时前
kafka-保姆级配置说明(producer)
分布式·kafka
黄名富4 小时前
Spring Cloud — 深入了解Eureka、Ribbon及Feign
分布式·spring·spring cloud·微服务·eureka·ribbon
小丑西瓜6664 小时前
分布式简单理解
linux·redis·分布式·架构·架构演变
优人ovo5 小时前
详解分布式ID实践
分布式
Java资深爱好者5 小时前
在Spark中,如何使用DataFrame进行高效的数据处理
大数据·分布式·spark
布谷歌6 小时前
Oops! 更改field的数据类型,影响到rabbitmq消费了...(有关于Java序列化)
java·开发语言·分布式·rabbitmq·java-rabbitmq
一个假的前端男6 小时前
RabbitMQ 消息队列 优化发送邮件
分布式·rabbitmq·ruby
A尘埃6 小时前
关闭超时订单和七天自动确认收货+RabbitMQ规范
分布式·rabbitmq
2501_903238656 小时前
深入理解 Kafka 主题分区机制
分布式·kafka·个人开发