MQ消息丢失、重复和积压是分布式系统常见问题,解决MQ消息丢失需生产者确认机制、Broker持久化和消费者手动ACK;MQ消息重复消费需幂等设计如唯一约束和Redis去重;MQ消息积压需扩容Consumer、优化处理逻辑和离线迁移。掌握这些方案能有效提升系统可靠性,Java开发者面试必备技能,2025最新面试宝典涵盖Spring、高并发等高频考点,助你轻松应对技术挑战。
💡 2025年Java面试宝典最新版,强烈建议备考的同学下载学习!
👉 点击领取《2025 Java面试宝典》
提取码:9b3g
(涵盖Spring全家桶、分布式、高并发、微服务、数据库调优等高频面试题)
作为程序员,面试时“MQ消息队列”几乎是必考点,尤其是消息丢失、重复消费、积压这三大问题。今天咱们就来拆解这三大痛点,理清解决思路,下次面试官再问,直接对答如流!
消息丢失是生产环境中绝对不能容忍的!核心思路是 “全链路确认 + 兜底恢复”:
publisher confirms,Kafka 的 acks=all + retries。生产者必须收到 Broker 的成功确认才算发送完成。
Broker 端防丢失:
durable=true),避免Broker宕机丢消息。fsync 频率(同步刷盘最安全,异步刷盘性能高但有丢消息风险)。消费者端防丢失:
网络波动、Consumer 崩溃后重试都会导致重复投递。核心思想是:接受重复,但保证幂等!
理解幂等性:
setStatus('paid'))。幂等解决方案:
msgId + 业务标识)。消费前用 setnx 判断,成功则消费,失败则丢弃。msgId,消费前查询该表。消费端注意事项:
积压通常发生在消费速度跟不上生产速度时。处理核心是 “定位瓶颈 + 快速扩容 + 兜底迁移”:
快速定位瓶颈:
紧急扩容:
max.poll.records)。紧急恢复:

🎁 程序员专属福利:
还在为面试刷题发愁?「面试鸭」会员覆盖2025年最新大厂真题、高频考点、系统设计题!
👉 通过「面试鸭返利网」下单「面试鸭会员」,立享 25 元返利! 扫码或访问官网 mianshiyafanli.com 领取优惠!

技术交流、面试资料、内推机会,关注「面试鸭返利网」不迷路!
扫码联系我返利
(当前返利8元,金额随官方实际价格波动,最好提前咨询)

面试鸭小程序码

美团大额优惠券,给自己加个鸡腿吧!

支付宝扫码领取1-8元无门槛红包
