开发者社区 > 云原生 > 消息队列 > 正文

咨询下,rocketmq 重置消费位点过程中,有可能导致重复消费吗?

咨询下,rocketmq 重置消费位点过程中,有可能导致重复消费吗?

展开
收起
滴滴滴~ 2023-03-06 16:43:08 1015 0
5 条回答
写回答
取消 提交回答
  • 坚持这件事孤独又漫长。
    • 在 RocketMQ 中,如果消费者使用的是拉消息模式,重置消费位点的过程中是有可能导致重复消费的。消费者在拉取消息时,会从服务器中指定的消息消费位点开始拉取消息,然后逐个消费这些消息。如果在消费某条消息时出现异常,消费者有可能把当前消费的消息消费掉后,才抛出异常。此时,RocketMQ 会认为该条消息已经消费成功,将消费进度推进到下一条消息上。如果此时消费者重置了消费位点,会重新开始消费之前已经消费成功的消息,从而导致消息重复消费的情况。

    • 为了避免重复消费,建议使用推送消息模式,或者在拉取消息时使用消费消息的确认机制(ACK),确保消息已经被消费成功后再进行推进消费位点,以避免因为消费异常而导致的消息重复消费。同时,在重置消费位点时,也可以通过使用幂等消费的方式,保证消息消费的幂等性,从而避免消息重复消费的出现。

    2023-03-07 10:32:34
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,MQ重复消费是指同一个应用的多个实例收到相同的消息,或者同一个实例收到多次相同的消息,若消费者逻辑未做幂等处理,就会造成重复消费。

    2023-03-07 10:32:24
    赞同 1 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    MQ会把你的这批消费放到当前消费组的重试队列中,然后过一段时间重试队列中的消息会再次发送给消费者

    2023-03-07 08:54:51
    赞同 展开评论 打赏
  • 重置消费位点后消费者将直接从重置后的位点开始消费,重置后的历史消息需要重新读写,造成重复消费

    2023-03-06 17:32:35
    赞同 展开评论 打赏
  • 向前重置位点的话,这段时间的消息就会被重复消费。此答案整理自钉群“群2-Apache RocketMQ 中国”

    2023-03-06 16:49:06
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    行业实践:RocketMQ 业务集成典型行业应用和实践 立即下载
    技术揭秘:RocketMQ 5.0 云原生架构升级之路 立即下载
    RocketMQ Summit 2022 开源生态发展 立即下载