Skip to content

如何保证消息不重复消费 ​

题目 ​

如何保证消息不重复消费?

参考答案 ​

严格说 MQ 很难保证业务绝对只消费一次,所以工程上核心是“幂等”。

常见手段:

  • 业务唯一键去重
  • 消费记录表
  • Redis 幂等标记

结论是:允许消息重复到达,但业务结果只能生效一次。

回答展开 ​

  • MQ 题最好分成生产端、Broker、消费端三段来讲。
  • 如果涉及幂等、重试、顺序性,重点说明业务语义而不是只看消息语义。
  • 如果是 Kafka,还可以带上分区、副本、ISR 这些关键字。

实际场景 ​

比如订单创建、支付成功、发券通知这类消息链路,一旦出现重复消费、积压或消息丢失,都会直接影响业务结果,所以 MQ 治理非常关键。

努力工作 享受生活