Java 后端 · 分布式与消息队列 怎样避免重复消费? 先自己想一想,再看参考要点参考要点处理完才确认,崩溃后会重复投递,所以消费逻辑要幂等:用业务唯一标识(订单号加事件类型,不用消息 ID)作去重键,在同一个本地事务中先写去重表再执行业务,主键冲突就直接确认有状态的业务用条件更新(WHERE status = 'UNPAID')Kafka 的恰好一次不能代替业务幂等接收端的可靠性