文章

如何保证 RocketMQ 消费者的消费消息的幂等性?

《精尽【消息队列 】面试题》 中,已经解析过该问题。当然,我们有几点要补充下:

  • Producer 在发送消息时,默认会生成消息编号( msgId ),可见 org.apache.rocketmq.common.message.MessageClientExt 类。
  • Broker 在存储消息时,会生成结合 offset 的消息编号( offsetMsgId ) 。
  • Consumer 在消费消息失败后,将该消息发回 Broker 后,会产生新的 offsetMsgId 编号,但是 msgId 不变。
本文由作者按照 CC BY 4.0 进行授权