当前位置: 首页 > article >正文

如何解决RabbitMQ消息的重复消费问题

什么情况下会导致消息的重复消费——在消费者还没成功发送自动确认机制时发生:

  • 网络抖动
  • 消费者挂了

解决方案

  • 每条消息设置一个唯一的标识id
  • 幂等方案:【Redis分布式锁、数据库锁(悲观锁、乐观锁)】

 面试官:如何解决MQ消息重复消费的问题

候选人:我们当时是设置了自动确认机制,当服务还没来得及给MQ确认的时候,服务宕机了,导致服务重启之后,又消费了一次消息。这样就重复消费了。

因为我们当时有一个业务的唯一标识,我们再处理消息时,先到数据库查询一下,这个数据是否存在,如果不存在,说明没有处理过,这个时候就可以正常处理这个消息了。如果已经存在这个数据了,就说明消息重复消费了,我们就不需要再消费了。

第二种就是典型的幂等性问题,比如,Redis分布式锁、数据库的锁都是可以的。


http://www.kler.cn/a/372932.html

相关文章:

  • C++第4课——swap、switch-case-for循环(含视频讲解)
  • 三周精通FastAPI:24 OAuth2 实现简单的 Password 和 Bearer 验证
  • Java 中 String str = new String(“hello“); 里面创建了几个对象?
  • 11-Dockerfile
  • 数据结构---顺序表
  • Adam 优化算法《学习笔记》
  • ubuntu 24 (wayland)如何实现无显示器远程桌面
  • 基于Python的A*算法实现路径规划
  • 农村扶贫管理:SpringBoot解决方案
  • PPT / Powerpoint中利用LaTeX输入公式
  • 机器学习之线性回归
  • 二、k8s快速入门之docker+Kubernetes平台搭建
  • 提升网站速度与性能优化的有效策略与实践
  • ShellScript脚本编程(函数与正则表达式)
  • 软考:中间件
  • leetcode 303.区域和检索-数组不可变
  • 1.5 新特性 C++面试常见问题
  • 【Linux】-常见指令(1)
  • MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升
  • 62.不同路径 63.不同路径ii
  • 我的电脑问题
  • C++设计模式创建型模式———单例模式
  • 计算机网络(Ⅵ)应用层原理
  • HTML入门教程20:HTML头部
  • 代码随想录第十五天
  • oracle和mysql的区别常用的sql语句